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
Philipp Paulweber
69d38a5f8e
Refactor MarkupExporter to omit intermediate table result creation and simplify MarkupFormatter emitting
...
* see: https://github.com/sharkdp/hyperfine/pull/490#pullrequestreview-932424652
2022-05-15 21:37:40 +02:00
Philipp Paulweber
9dc87ac349
Refactor MarkdownExporter emitting using a generic MarkupFormatter trait
...
* see: https://github.com/sharkdp/hyperfine/pull/490#issuecomment-1076784074
2022-05-15 21:37:40 +02:00
Philipp Paulweber
50cf7de915
Refactor Markdown table emitting to generic Markup function
2022-05-15 21:37:40 +02:00
Philipp Paulweber
3b1fc32626
Refactor Markdown table contents generation to generic Markup function
2022-05-15 21:37:40 +02:00
Philipp Paulweber
23d9fe2595
Refactor Markdown with Markup by using generic table emitter
2022-05-15 21:37:40 +02:00
David Peter
65932dd5ce
Update warning text
2022-03-05 12:47:30 +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
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
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
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
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