···11+{ stdenv, fetchFromGitHub, autoreconfHook }:
22+33+stdenv.mkDerivation rec {
44+ pname = "multitime";
55+ version = "1.4";
66+77+ src = fetchFromGitHub {
88+ owner = "ltratt";
99+ repo = pname;
1010+ rev = "${pname}-${version}";
1111+ sha256 = "1p6m4gyy6dw7nxnpsk32qiijagmiq9vwch0fbc25qvmybwqp8qc0";
1212+ };
1313+1414+ nativeBuildInputs = [ autoreconfHook ];
1515+1616+ meta = {
1717+ description = "Time command execution over multiple executions";
1818+1919+ longDescription = ''
2020+ Unix's `time` utility is a simple and often effective way of measuring
2121+ how long a command takes to run. Unfortunately, running a command once
2222+ can give misleading timings: the process may create a cache on its first
2323+ execution, running faster subsequently; other processes may cause the
2424+ command to be starved of CPU or IO time; etc. It is common to see people
2525+ run `time` several times and take whichever values they feel most
2626+ comfortable with. Inevitably, this causes problems.
2727+2828+ `multitime` is, in essence, a simple extension to time which runs a
2929+ command multiple times and prints the timing means (with confidence
3030+ intervals), standard deviations, minimums, medians, and maximums having
3131+ done so. This can give a much better understanding of the command's
3232+ performance.
3333+ '';
3434+3535+ license = stdenv.lib.licenses.mit;
3636+ homepage = "https://tratt.net/laurie/src/multitime/";
3737+ platforms = stdenv.lib.platforms.unix;
3838+ };
3939+}