Бляди тоже ок, ага. Войти !bnw Сегодня Клубы
Привет, TbI — HRWKA! 1239.0 пользователей не могут ошибаться!
?6941
прекрасное6443
говно5904
говнорашка5512
хуита4710
anime3065
linux2651
music2633
bnw2601
рашка2565
log2354
ололо2166
дунч1821
pic1815
сталирасты1491
украина1439
быдло1437
bnw_ppl1417
дыбр1238
гімно1158

Пока я жду когда же кофе начнёт действовать, давайте поговорим о бенчмарках. Нет, я не предлагаю ставить phoronix test suite и бряцать своими железками, поговорим о муках выбора между двумя имплементациями функции.
Допустим я написал функцию f(const char,size_t) которая делает преобразование данных и делает это хорошо (но долго). Допустим я написал функцию f2(const char,size_t), которая делает то же самое преобразование и тоже делает это хорошо (и тоже долго). Как определить какая функция работает быстрее (на сферических данных в вакууме)?
Обычно я запускаю каждую функцию по сто раз (или по десять, если они реально медленные) и засекаю, сколько времени функции потратили на выполнение ста итераций, и вывожу количество затраченных миллисекунд в консоль. От запуска к запуску цифры скачут на 10-15%. Тогда я пишу ещё один внешний цикл, который запускает сто итераций десять раз и выводит лучшие времена среди этих десяти. Цифры теперь скачут на 5% — тут уже ничего не поделать, фрагментация памяти, случайные контекст свитчи, фазы луны. Можно увеличить количество итераций и тогда разброс стабилизируется, но всё равно мне ни разу не удалось сделать его менее одного процента, а время выполнения бенчмарка всё растёт и растёт.
Вопрос, как правильно выбирать критерий останова для подобных бенчмарках? Как сделать запуски сферическими в вакууме, чтобы ничего программе не мешало? callgrind не предлагать — он меряет количество выполненных процессорных операций, которое не обязательно отражает точное время (ибо кэшмиссы и прочее).

#OMQRIH (25) / @hirthwork / 3755 дней назад
дневничок Сижу в холодном и сыром провинциальном ДК. Тут поют про войну. Преимущественно разукрашеные девицы, и, даже для моего неидеального слуха, каждая следующая фальшивей предыдущей. Есть и исключения в виде товарища из параллельного, у которого милая дикция и ещё одной девочки. Но всё равно - холодно и страшно (за будущее). :(
#MUOU1Z (0) / @rastafairy / 4596 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.