diff options
author | Aria Shrimpton <me@aria.rip> | 2024-04-01 19:12:12 +0100 |
---|---|---|
committer | Aria Shrimpton <me@aria.rip> | 2024-04-01 19:12:12 +0100 |
commit | a0c19f7f9dff15228490f37dbd5e6053e80cb05c (patch) | |
tree | 08d6ce3ad9c8dfbb092438797752b0d180b3f8c9 /src | |
parent | 8b7687ff151a0e57e5b0d9cf10258657e0d2b7c2 (diff) |
more repro stuff
Diffstat (limited to 'src')
-rw-r--r-- | src/README.md | 57 |
1 files changed, 30 insertions, 27 deletions
diff --git a/src/README.md b/src/README.md index a2691a3..60ab951 100644 --- a/src/README.md +++ b/src/README.md @@ -7,45 +7,48 @@ First, setup the dependencies as detailed in the root of the repository. Building is done with Cargo as normal: `cargo build`. This places the executable in `./target/debug/candelabra-cli`. +This is not necessary if using the testing VM, and you should replace `cargo run` with `candelabra-cli` in all commands below. + ## Creating cost models -To build and view cost models, first find an implementation to look at: +To build and view a cost model, first pick an implementation to look at: -``` -$ cargo run -- list-library -[...] -Available container implementations: - primrose_library::VecMap - primrose_library::VecSet - std::vec::Vec - std::collections::BTreeSet - std::collections::BTreeMap - primrose_library::SortedVecSet - std::collections::LinkedList - primrose_library::SortedVecMap - primrose_library::SortedVec - std::collections::HashMap - std::collections::HashSet -``` + - primrose_library::VecMap + - primrose_library::VecSet + - std::vec::Vec + - std::collections::BTreeSet + - std::collections::BTreeMap + - primrose_library::SortedVecSet + - std::collections::LinkedList + - primrose_library::SortedVecMap + - primrose_library::SortedVec + - std::collections::HashMap + - std::collections::HashSet -To view the cost model for a single implementation, run `cargo run -- cost-model <impl>`. +To view the cost model for a single implementation, run `just cost-model <impl>`. -Alternatively, run `just cost-model <impl>` to look at a single implementation, or `just cost-models` to view models for all implementations. -The latter will clear the cache before running. +Alternatively, run `just cost-models` to view models for all implementations. +This will clear the cache before running. Cost models are also saved to `target/candelabra/benchmark_results` as JSON files. To analyse your built cost models, copy them to `../analysis/current/candelabra/benchmark_results` and see the README in `../analysis/`. ## Profiling applications -To profile an application in the `tests/` directory and display the results, run `cargo run -- --manifest-path tests/Cargo.toml -p <project> profile`. - -Alternatively, run `just profile <project>`. - +To profile an application in the `tests/` directory and display the results, run `just profile <project>`. Profiling info is also saved to `target/candelabra/profiler_info/` as JSON. ## Selecting containers -To print the estimated cost of using each implementation in a project, run `cargo run -- --manifest-path tests/Cargo.toml -p <project> select`. +To print the estimated cost of using each implementation in a project, run `just select <project>`. +Alternatively, run `just selections` to run selection for all test projects. -Alternatively, run `just select <project>` for a single project, or `just selections` to run selection for all test projects. -You can add `--compare` to any of these commands to also benchmark the project with every assignment of implementations, and print out the results. +You can add `--compare` to either of these commands to also benchmark the project with every assignment of implementations, and print out the results. + +## Running the full test suite + +To run everything we did, from scratch: + +``` +$ just cost-models # approx 10m +$ just selections --compare 2>&1 | tee ../analysis/current/log # approx 1hr 30m +``` |