David Peter
3494c8abe6
Remove alternative constructors
2026-10-05 15:59:43 +02:00
David Peter
71365c227e
Refactoring
2026-10-05 15:59:11 +02:00
David Peter
be66a6668f
Move quantity module
2026-10-05 15:59:11 +02:00
David Peter
641451aea6
Use uom
2026-10-05 15:59:10 +02:00
David Peter
42e75c1737
Unify TimingResult/TimerResult/Measurement
2026-10-05 15:58:56 +02:00
David Peter
f9aa299c0f
Switch to unit-safe quantities
2026-10-05 15:58:56 +02:00
David Peter
c20fcc0bda
Real => wall clock
2026-10-05 15:56:53 +02:00
David Peter
3558138cea
Further simplifications
2026-10-05 12:40:33 +02:00
willcl-ark
44c0cc231b
expose HYPERFINE_ITERATION to intermediate commands
...
Fixes : #781
Expose the `$HYPERFINE_ITERATION` variable to intermediate commands.
This will allow iteration-specific prepare/conclude, such as:
```bash
hyperfine --runs 5 --prepare 'echo touch file${HYPERFINE_ITERATION}.dat' \
'echo testing file${HYPERFINE_ITERATION}.dat' \
--conclude 'echo rm file${HYPERFINE_ITERATION}.dat' --show-output
```
2026-10-05 12:24:43 +02:00
David Peter
b5f58651a1
Extract quantity and command helpers
2026-10-05 11:14:09 +02:00
David Peter
a8e56efecc
Use uom quantities for benchmark measurements
2026-10-05 10:32:32 +02:00
David Peter
db3a3dedc7
Collect benchmark runs in Measurements
2026-10-05 10:10:09 +02:00
David Peter
35c94a0e36
Clarify internal measurement field names
2026-10-05 10:09:41 +02:00
David Peter
1fb03c3807
Replace statistical with local floating-point helpers
2026-10-05 09:47:33 +02:00
David Peter
6cb9566118
Unify timer and executor measurement results
2026-10-05 09:47:09 +02:00
David Peter
b5a6860d96
Support list of exit codes in --ignore-failure
2025-11-18 09:19:27 +01:00
David Peter
6556b2bd46
Initial work on tracking memory usage
2024-12-29 12:18:55 +01:00
David Peter
99d24b7a2e
Multiple output policies
2024-11-11 22:24:25 +01:00
David Carlier
2899deb8fd
apply clippy advices on executor/commands lifetimes.
2024-11-11 08:47:33 +01:00
David Peter
83f04cdd31
Add iteration information to failure error message
2024-11-10 22:26:13 +01:00
Hamir Mahal
ef1263279d
style: simplify string interpolation
2024-06-01 11:07:23 +02:00
Pedro Witzel
ae9b0bbdfd
cfg: adding more pre-processing for windows-only parser
2023-10-05 09:25:07 +02:00
Pedro Witzel
c2f99e5f94
fmt: apply cargo fmt suggestions
2023-10-05 09:25:07 +02:00
Pedro Witzel
bece2eacf0
bug: quoting failure on windows-platform ( #296 )
2023-10-05 09:25:07 +02:00
David Peter
e88fa27c07
Change order of input/outut
2023-03-15 09:33:49 +01:00
Steve Nease
d32b90ee5c
Add the rest of the suggestions from code review
2023-03-15 09:33:49 +01:00
Steve Nease
0e3bad1391
ran cargo fmt
2023-03-15 09:33:49 +01:00
Steve Nease
e38acdb683
Added --stdin-data argument
...
This argument accepts a path to a file. The data contained in the file will be passed to the command via stdin.
Closes sharkdp/hyperfine#541
2023-03-15 09:33:49 +01:00
FilipAndersson
f00acf962e
Fixes #568
2022-10-29 14:58:57 +02:00
Tavian Barnes
277807cb5a
Implement --output={null,pipe,<FILE>}
...
Fixes #377 .
2022-05-17 22:30:45 +02: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
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
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
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