Commit Graph
100 Commits
Author SHA1 Message Date
David Peter bbde07fcf6 Update dependencies 2022-06-26 21:20:24 +02:00
David Peter b989a2afa6 Add new unreleased section 2022-05-17 22:57:20 +02:00
David Peter ec4321392f Fix clippy warnings 2022-05-17 22:57:10 +02:00
David Peter 623ce2d2d9 Bump version 2022-05-17 22:37:08 +02:00
David Peter f75f0a10fe Use cross to build x86_64-unknown-linux-gnu executables
We do this in order to link against older versions of glibc.

closes #508
2022-05-16 21:15:57 +02:00
David Peter 692469659b Add CHANGELOG entry for Emacs org-mode 2022-05-15 21:58:47 +02:00
David Peter eb0ccc85f1 Adapt to new markup exporter changes 2022-05-15 21:57:35 +02:00
David Peter e3bc5b8b25 Simplify test 2022-05-15 21:37:40 +02:00
David Peter 8c05fd030d table_line => table_divider 2022-05-15 21:37:40 +02:00
David Peter 5cd2821266 table_data => table_row 2022-05-15 21:37:40 +02:00
David Peter 7fdb32d202 Remove superfluous newline 2022-05-15 21:37:40 +02:00
David Peter 339f6661ce Move determine_unit_from_results 2022-05-15 21:37:40 +02:00
David Peter 4cdf2d5152 Implement Exporter for all MarkupExporters 2022-05-15 21:37:40 +02:00
David Peter 9a46bcc390 Remove the TestExporter 2022-05-15 21:37:40 +02:00
David Peter 6fe7738165 Do not pass 'unit' into determine_unit_from_results 2022-05-15 21:37:40 +02:00
David Peter 8741d05d11 Move Exporter::unit => determine_unit_from_results 2022-05-15 21:37:40 +02:00
David Peter 94b40d274e Update execution order image 2022-03-05 13:10:46 +01:00
David Peter 4593572d9d Add whisker plot 2022-03-05 13:02:40 +01:00
David Peter 79f3957879 Update CHANGELOG 2022-03-05 13:01:44 +01:00
David Peter 02157eb6ca Add histogram image 2022-03-05 12:51:01 +01:00
David Peter 65932dd5ce Update warning text 2022-03-05 12:47:30 +01:00
David Peter 5c676a9626 Bump version to v1.13.0 2022-03-05 12:10:38 +01:00
David Peter f1557d47fb Add plot_progression.py 2022-03-05 12:03:29 +01:00
David Peter bcd3705ce0 Add number of runs to advanced_statistics.py 2022-03-05 11:53:59 +01:00
David Peter 176275ecab Update dependencies 2022-03-05 11:53:45 +01:00
David Peter 0601a1971e Add --t-min/--t-max to histogram script 2022-02-27 20:11:13 +01:00
David Peter f742329f1e Adjust image size 2022-02-27 17:04:00 +01:00
David Peter d13454a0d4 Add additional integration test for failing command 2022-02-22 22:51:09 +01:00
David Peter e666b01e09 Add simple integation test for --shell=none 2022-02-22 22:51:09 +01:00
David Peter e38ac46179 Add CHANGELOG entry 2022-02-22 22:51:09 +01:00
David Peter 365ff2584d Switch to --shell=none/-N, do not change the default 2022-02-22 22:51:09 +01:00
David Peter d9418e0731 Use raw executor by default, skip intermediate shell
This adds a new "raw executor" (next to the "shell executor") that
allows hyperfine to execute commands directly without any intermediate
shell.

The command line is split into tokens (using the `shell-words` crate),
and according to POSIX rules. The first token is taken as the executable,
and the rest as arguments.

The new executor is enabled by default. In order to select the shell
executor, users will have to pass `--shell=default`.

This allows us to reduce measurement noise and to benchmark very quick
commands. It also decreases the time to run benchmarks, as we don't need
the calibration phase.

Also, it allows one to make sure that the executed command is not
implemented as a shell builtin. For example `hyperfine true`
and `hyperfine --shell=default true` return different times due
to the fact that `bash` executes `true` as a NOP.

Co-authored: Ciprian Dorin Craciun <ciprian@volution.ro>
2022-02-22 22:51:09 +01:00
David Peter f2f1dd9d40 Update dependencies 2022-02-22 14:04:07 +01:00
David Peter 308bf5cd26 Extract common functionality 2022-02-22 13:24:05 +01:00
David Peter f19223ba9d Simplify 2022-02-22 13:24:05 +01:00
David Peter 7fd4aea495 Rename to TimerResult 2022-02-22 13:24:05 +01:00
David Peter 55f0ef6637 Move wall clock timer into execute_and_measure 2022-02-22 13:24:05 +01:00
David Peter e001530f61 Change argument order 2022-02-22 13:24:05 +01:00
David Peter d27cbceed2 Add integration test for --show-output 2022-02-22 13:24:05 +01:00
David Peter 9b8f2a9ee2 Move Stdio extraction to enum 2022-02-22 13:24:05 +01:00
David Peter e1da8ba00f Further simplify execute_and_measure 2022-02-22 13:24:05 +01:00
David Peter 0ffc6d7cc0 Move to timer module 2022-02-22 13:24:05 +01:00
David Peter 1f3943e7d1 Move custom functionality to executor 2022-02-22 13:24:05 +01:00
David Peter f822455d99 Rename functions 2022-02-22 13:24:05 +01:00
David Peter 7c929f7e48 Rename to run_command_and_measure 2022-02-22 13:24:05 +01:00
David Peter 826449bc8f Rename to get_command_line 2022-02-22 13:24:05 +01:00
David Peter defafdf707 Refactor timer module 2022-02-22 10:51:06 +01:00
David Peter f029a46ff9 Fix clippy warnings 2022-02-22 10:13:06 +01:00
David Peter b6ff23a77f Update outdated comment 2022-02-22 10:08:15 +01:00
David Peter eb72702956 Update LICENSE 2022-02-22 10:05:04 +01:00
David Peter 197e5df9f0 Add environment randomization on Windows 2022-02-22 09:42:31 +01:00
David Peter cb6f2f7c4e Remove comment 2022-02-22 09:15:40 +01:00
David Peter 62e82a9b4b Update CHANGELOG 2022-02-22 09:15:25 +01:00
David Peter 6887835f34 Proper shell overhead computation 2022-02-22 09:07:40 +01:00
David Peter 6f51232a8a Add debug/mock mode 2022-02-22 09:07:40 +01:00
David Peter 3348b37b8e Faster tests 2022-02-22 09:07:40 +01:00
David Peter c0ce6b9537 Add integration test for '--shell' 2022-02-22 09:07:40 +01:00
David Peter 5c9c8c2383 New Benchmark struct 2022-02-22 09:07:40 +01:00
David Peter d3c7c7974a Improve error message 2022-02-22 09:07:40 +01:00
David Peter 701a38323d Formatting 2022-02-22 09:07:40 +01:00
David Peter 8c5ae87ca2 Better error handling in run_intermediate_command 2022-02-22 09:07:40 +01:00
David Peter 662d5ca9ac Restructure run_intermediate_command 2022-02-22 09:07:40 +01:00
David Peter f4ef945923 Update BenchmarkResult documentation 2022-02-22 09:07:40 +01:00
David Peter 021583b89b Simplify code 2022-02-22 09:07:40 +01:00
David Peter 0b5ad72872 Rename to command 2022-02-22 09:07:40 +01:00
David Peter 4cfccf1168 Rename num 2022-02-22 09:07:40 +01:00
David Peter fa2eaaac5f Move functionality into run_cleanup_command 2022-02-22 09:07:40 +01:00
David Peter ffa1c0e839 Remove more function arguments 2022-02-22 09:07:40 +01:00
David Peter 39c7736095 Move functions into Scheduler 2022-02-22 09:07:40 +01:00
David Peter dcfeede18e Move functionality to scheduler 2022-02-22 09:07:40 +01:00
David Peter b658e20110 Move exit code function to separate file 2022-02-22 09:07:40 +01:00
David Peter 811e6b5fcd Rename test 2022-02-22 09:07:40 +01:00
David Peter 6645fa10b9 Use get_program 2022-02-22 09:07:40 +01:00
David Peter 21f76a338f Remove unused option 2022-02-22 09:07:40 +01:00
David Peter f9e62e5e7f Rename parse to from_str 2022-02-22 09:07:40 +01:00
David Peter 0ebd76dfc2 Turn show_output into enum 2022-02-22 09:07:40 +01:00
David Peter f9334e15fc Rename _res to _result 2022-02-22 09:07:40 +01:00
David Peter bea0cfab30 Rename Runs to RunBounds 2022-02-22 09:07:40 +01:00
David Peter 250db61fa0 Fix clippy warning 2022-02-22 09:07:40 +01:00
David Peter 2d0cd4b53c Modify doc comment 2022-02-19 16:53:02 +01:00
David Peter 833529f733 Refactor command.rs 2022-02-19 16:53:02 +01:00
David Peter bf4d78dcaf Update code comments 2022-02-19 16:53:02 +01:00
David Peter 72d27729fa New Scheduler struct 2022-02-19 16:53:02 +01:00
David Peter 39984a3896 Fix SVG 2022-02-06 22:52:11 +01:00
David Peter 5df981ae7b Expand execution order tests 2022-02-06 22:50:11 +01:00
David Peter aae3a4116f Add diagram explaining execution order 2022-02-06 22:50:11 +01:00
David Peter 6db82cdb2a Split range into range_step and commands 2022-02-06 22:49:04 +01:00
David Peter a6baf49b72 Introduce Commands struct 2022-02-06 22:49:04 +01:00
David Peter c5a2266199 New schedule module 2022-02-06 20:19:50 +01:00
David Peter 5c634c9f2f Move a few modules to util 2022-02-06 20:19:50 +01:00
David Peter 999e7c4566 Move more modules around 2022-02-06 20:19:50 +01:00
David Peter 47091a5740 New parameter module 2022-02-06 20:19:50 +01:00
David Peter 865290a144 New output module 2022-02-06 20:19:50 +01:00
David Peter e5e4c8c020 New 'benchmark' module folder 2022-02-06 20:19:50 +01:00
David Peter cd38e9c63b Move build_commands 2022-02-06 20:19:50 +01:00
David Peter 33f8d03d6b Move build_export_manager to ExportManager 2022-02-06 20:19:50 +01:00
David Peter b54b2f81f4 Rename to Options 2022-02-06 20:19:50 +01:00
David Peter 39a85b88cf Move convert_cli_arguments_to_options to HyperfineOptions 2022-02-06 20:19:50 +01:00
David Peter c4ae7f6f8c Fix Windows code 2022-02-06 20:19:50 +01:00
David Peter d7e96928fb Fix format call 2022-02-06 20:19:50 +01:00