mirror of
https://github.com/sharkdp/hyperfine.git
synced 2026-11-02 17:11:28 +00:00
Updates for 0.4.0
This commit is contained in:
1 parent
2e24ff012a
commit
89e6d37562
7 files changed
+24
-23
No files matched your search
Generated
+4
-4
@@ -95,7 +95,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "hyperfine"
|
name = "hyperfine"
|
||||||
version = "0.3.0"
|
version = "0.4.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"approx 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"approx 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"atty 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
"atty 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@@ -158,7 +158,7 @@ dependencies = [
|
|||||||
"num-complex 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num-complex 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"num-integer 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num-integer 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"num-iter 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num-iter 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"num-rational 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num-rational 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"num-traits 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num-traits 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -201,7 +201,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "num-rational"
|
name = "num-rational"
|
||||||
version = "0.1.40"
|
version = "0.1.41"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"num-bigint 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
|
"num-bigint 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@@ -432,7 +432,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
"checksum num-complex 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "58de7b4bf7cf5dbecb635a5797d489864eadd03b107930cbccf9e0fd7428b47c"
|
"checksum num-complex 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "58de7b4bf7cf5dbecb635a5797d489864eadd03b107930cbccf9e0fd7428b47c"
|
||||||
"checksum num-integer 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "d1452e8b06e448a07f0e6ebb0bb1d92b8890eea63288c0b627331d53514d0fba"
|
"checksum num-integer 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "d1452e8b06e448a07f0e6ebb0bb1d92b8890eea63288c0b627331d53514d0fba"
|
||||||
"checksum num-iter 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)" = "7485fcc84f85b4ecd0ea527b14189281cf27d60e583ae65ebc9c088b13dffe01"
|
"checksum num-iter 0.1.34 (registry+https://github.com/rust-lang/crates.io-index)" = "7485fcc84f85b4ecd0ea527b14189281cf27d60e583ae65ebc9c088b13dffe01"
|
||||||
"checksum num-rational 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "0c7cb72a95250d8a370105c828f388932373e0e94414919891a0f945222310fe"
|
"checksum num-rational 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "0b950f75e042fdd710460084d19c8efdcd72d65183ead8ecd04b90483f5a55d2"
|
||||||
"checksum num-traits 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "9936036cc70fe4a8b2d338ab665900323290efb03983c86cbe235ae800ad8017"
|
"checksum num-traits 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "9936036cc70fe4a8b2d338ab665900323290efb03983c86cbe235ae800ad8017"
|
||||||
"checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37"
|
"checksum owning_ref 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37"
|
||||||
"checksum parking_lot 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3e7f7c9857874e54afeb950eebeae662b1e51a2493666d2ea4c0a5d91dcf0412"
|
"checksum parking_lot 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3e7f7c9857874e54afeb950eebeae662b1e51a2493666d2ea4c0a5d91dcf0412"
|
||||||
|
|||||||
+1
-1
@@ -7,7 +7,7 @@ license = "MIT/Apache-2.0"
|
|||||||
name = "hyperfine"
|
name = "hyperfine"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
repository = "https://github.com/sharkdp/hyperfine"
|
repository = "https://github.com/sharkdp/hyperfine"
|
||||||
version = "0.3.0"
|
version = "0.4.0"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
colored = "1.6"
|
colored = "1.6"
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ A command-line benchmarking tool (*inspired by [bench](https://github.com/Gabrie
|
|||||||
* Constant feedback about the benchmark progress and current estimates.
|
* Constant feedback about the benchmark progress and current estimates.
|
||||||
* Warmup runs can be executed before the actual benchmark.
|
* Warmup runs can be executed before the actual benchmark.
|
||||||
* Cache-clearing commands can be set up before each timing run.
|
* Cache-clearing commands can be set up before each timing run.
|
||||||
|
* Statisical outlier detection.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
@@ -76,8 +77,8 @@ yaourt -S hyperfine
|
|||||||
Download the appropriate `.deb` package from the [Release page](https://github.com/sharkdp/hyperfine/releases)
|
Download the appropriate `.deb` package from the [Release page](https://github.com/sharkdp/hyperfine/releases)
|
||||||
and install it via `dpkg`:
|
and install it via `dpkg`:
|
||||||
```
|
```
|
||||||
wget https://github.com/sharkdp/hyperfine/releases/download/v0.3.0/hyperfine_0.3.0_amd64.deb
|
wget https://github.com/sharkdp/hyperfine/releases/download/v0.4.0/hyperfine_0.4.0_amd64.deb
|
||||||
sudo dpkg -i hyperfine_0.3.0_amd64.deb
|
sudo dpkg -i hyperfine_0.4.0_amd64.deb
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ pub fn mean_shell_spawning_time(style: &OutputStyleOption) -> io::Result<TimingR
|
|||||||
fn run_preparation_command(command: &Option<String>) -> io::Result<()> {
|
fn run_preparation_command(command: &Option<String>) -> io::Result<()> {
|
||||||
if let &Some(ref preparation_command) = command {
|
if let &Some(ref preparation_command) = command {
|
||||||
let res = time_shell_command(preparation_command, CmdFailureAction::RaiseError, None);
|
let res = time_shell_command(preparation_command, CmdFailureAction::RaiseError, None);
|
||||||
if let Err(_) = res {
|
if res.is_err() {
|
||||||
return Err(io::Error::new(
|
return Err(io::Error::new(
|
||||||
io::ErrorKind::Other,
|
io::ErrorKind::Other,
|
||||||
"The preparation command terminated with a non-zero exit code. \
|
"The preparation command terminated with a non-zero exit code. \
|
||||||
|
|||||||
@@ -62,16 +62,16 @@ impl Default for HyperfineOptions {
|
|||||||
|
|
||||||
/// Return a pre-configured progress bar
|
/// Return a pre-configured progress bar
|
||||||
pub fn get_progress_bar(length: u64, msg: &str, option: &OutputStyleOption) -> ProgressBar {
|
pub fn get_progress_bar(length: u64, msg: &str, option: &OutputStyleOption) -> ProgressBar {
|
||||||
let progressbar_style = match option {
|
let progressbar_style = match *option {
|
||||||
&OutputStyleOption::Basic => ProgressStyle::default_bar(),
|
OutputStyleOption::Basic => ProgressStyle::default_bar(),
|
||||||
&OutputStyleOption::Full => ProgressStyle::default_spinner()
|
OutputStyleOption::Full => ProgressStyle::default_spinner()
|
||||||
.tick_chars("⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏")
|
.tick_chars("⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏")
|
||||||
.template(" {spinner} {msg:<30} {wide_bar} ETA {eta_precise}"),
|
.template(" {spinner} {msg:<30} {wide_bar} ETA {eta_precise}"),
|
||||||
};
|
};
|
||||||
|
|
||||||
let progress_bar = match option {
|
let progress_bar = match *option {
|
||||||
&OutputStyleOption::Basic => ProgressBar::hidden(),
|
OutputStyleOption::Basic => ProgressBar::hidden(),
|
||||||
&OutputStyleOption::Full => ProgressBar::new(length),
|
OutputStyleOption::Full => ProgressBar::new(length),
|
||||||
};
|
};
|
||||||
progress_bar.set_style(progressbar_style.clone());
|
progress_bar.set_style(progressbar_style.clone());
|
||||||
progress_bar.enable_steady_tick(80);
|
progress_bar.enable_steady_tick(80);
|
||||||
|
|||||||
@@ -13,16 +13,16 @@ use statistical::median;
|
|||||||
pub const OUTLIER_THRESHOLD: f64 = 1.4826 * 10.0;
|
pub const OUTLIER_THRESHOLD: f64 = 1.4826 * 10.0;
|
||||||
|
|
||||||
/// Compute modifized Z-scores for a given sample. A (unmodified) Z-score is defined by
|
/// Compute modifized Z-scores for a given sample. A (unmodified) Z-score is defined by
|
||||||
/// (x_i - x_mean)/x_stddev whereas the modified Z-score is defined by |x_i - x_median|/MAD where
|
/// `(x_i - x_mean)/x_stddev` whereas the modified Z-score is defined by `|x_i - x_median|/MAD`
|
||||||
/// MAD is the median average deviation.
|
/// where MAD is the median average deviation.
|
||||||
///
|
///
|
||||||
/// References:
|
/// References:
|
||||||
/// - https://en.wikipedia.org/wiki/Median_absolute_deviation
|
/// - <https://en.wikipedia.org/wiki/Median_absolute_deviation>
|
||||||
pub fn modified_zscores(xs: &[f64]) -> Vec<f64> {
|
pub fn modified_zscores(xs: &[f64]) -> Vec<f64> {
|
||||||
assert!(!xs.is_empty());
|
assert!(!xs.is_empty());
|
||||||
|
|
||||||
// Compute sample median:
|
// Compute sample median:
|
||||||
let x_median = median(&xs);
|
let x_median = median(xs);
|
||||||
|
|
||||||
// Compute the absolute deviations from the median:
|
// Compute the absolute deviations from the median:
|
||||||
let deviations: Vec<f64> = xs.iter().map(|x| (x - x_median).abs()).collect();
|
let deviations: Vec<f64> = xs.iter().map(|x| (x - x_median).abs()).collect();
|
||||||
|
|||||||
+3
-3
@@ -107,9 +107,9 @@ fn main() {
|
|||||||
.value_name("TYPE")
|
.value_name("TYPE")
|
||||||
.possible_values(&["auto", "basic", "full"])
|
.possible_values(&["auto", "basic", "full"])
|
||||||
.help(
|
.help(
|
||||||
"Set output style type. If set to 'basic', all colors and special \
|
"Set output style type (default: auto). Set this to 'basic' to disable output \
|
||||||
formatting will be disabled. If set to 'auto' when output target is not \
|
coloring and interactive elements. Set it to 'full' to enable all effects \
|
||||||
a TTY, 'basic' is used (default: auto).",
|
even if no interactive terminal was detected.",
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.arg(
|
.arg(
|
||||||
|
|||||||
Reference in new issue
Block a user