Как насчитать команды времени?

После наличия говорят с разработчиком брелока для ключей гнома на последнем настольном саммите - это не возможно GUI/командной строкой (необходимо программировать его).

18
09.02.2016, 01:47
6 ответов

Это не точно инструмент UNIX или GNU/Linux, но Вы могли вполне удобно использовать программную среду R для статистического расчета для этого. (Я ничто не могу найти более специфичным для Вашей задачи, все же.)

Редактирование, Как я мог сомневаться относительно этого, конечно, существует тестовый пакет для R: rbenchmark. Это, по-видимому, переносится system.time() который Вы могли также просто использовать непосредственно. Или взгляните на это, простую пару функции секундомера. Также см. "Выполнение системной команды" @Rosetta Код (или не делайте, это system("command").)

Edit2 я просто видел этот вопрос, "Измеряя время в рамках сценария" в правильном столбце "Related", это могло использоваться также т.е. занять время, сделайте для цикла (N времена), займите время снова, вычислите промежуток, разделитесь на N. (Еще легче, попробовать time ( for-loop ), проанализируйте его вывод, разделитесь на N).

4
27.01.2020, 19:46

Опция 1 - sqlite:

составьте простую таблицу с командой и столбцами времени и представлением с надлежащими вычислениями агрегирования. После синхронизации добавьте строку к таблице.

Преимущества: более простой определить таблицу по сравнению с решением 2.

Недостатки: Вам нужно (сделайте Вас?) заботятся о хранении данных.

Опция 2 - rrdtool:

Определите rrd файл базы данных, определение данных и функции агрегирования. После синхронизации наполняйте базу данных с rrdtool update ....

Преимущества: можно легко генерировать графики с rrdtool graph .... Никакая проблема хранения данных (круговая база данных).

Недостатки: бит тяжелее для определения rrd базы данных по сравнению с простой таблицей/представлением SQL

1
27.01.2020, 19:46
[1132187] Вы можете попробовать использовать модуль времени, доступный в любой системе с Python:[12135]
7
27.01.2020, 19:46

Вы можете использовать R , чтобы быстро вычислить среднее значение, стандартное отклонение и другие интересные значения.

Например, вы можете использовать время GNU для записи нескольких измерений времени выполнения в файл CSV:

function measure
{
  f=$1; shift
  n=$2; shift
  echo wall,user,sys,rss > "$f"
  for i in $(seq $n); do
    /usr/bin/time --output "$f" --append --format '%e,%U,%S,%M' "$@" >/dev/null
  done
}

Затем вы можете сгенерировать значения с помощью R следующим образом:

Rscript --vanilla -e "b=read.csv(file='$f');summary(b);sapply(b, sd);"

Я создал небольшой сценарий тестирования , который также неплохо распечатывает вывод R, например:

$ benchmark.sh 100 ./some_prog arg1 arg2
n=100 | min    | Q1     | med    | mean   | Q3     | max    | std
wall  | 0.0400 | 0.0400 | 0.0500 | 0.0471 | 0.0500 | 0.0800 | 0.00624
user  | 0.0400 | 0.0400 | 0.0400 | 0.0426 | 0.0400 | 0.0700 | 0.00562
sys   | 0      | 0      | 0      | 0      | 0      | 0      | 0.00000
rss   | 2608   | 2657   | 2704   | 2728   | 2764   | 2920   | 95.06524
3
27.01.2020, 19:46

Сверхтонкий — еще один вариант.

Пример использования:

hyperfine --warmup 3 'my_command'

См. связанный вопрос .

3
27.01.2020, 19:46

Еще две опции (теперь доступны в debian et al.):

2
30.04.2020, 08:42

Теги

Похожие вопросы