NumPy бенчмарки
Бенчмаркинг NumPy с Airspeed Velocity.
Использование
Airspeed Velocity самостоятельно управляет созданием и Python виртуальных сред, если не указано иное. Некоторые из функций бенчмаркинга в runtests.py также сообщают ASV использовать NumPy, скомпилированный runtests.py. Для запуска бенчмарков не нужно устанавливать развитие версию NumPy в текущей Python среде.
Запуск бенчмарка по текущей версии NumPy (не записывать результат):
python runtests.py --bench bench_core
Сравнение изменений в результатах бенчмарков с другой версией:
python runtests.py --bench-compare v1.6.2 bench_core
Запуск команд ASV (запись результатов и генерация HTML):
cd benchmarks asv run --skip-existing-commits --steps 10 ALL asv publish asv preview
Дополнительная информация об использовании asv доступна в документации ASV. Стандартная помощь по командной строке доступна через asv --help и asv run --help.
Написание бенчмарков
См. документацию ASV для основ написания бенчмарков.
Некоторые моменты для рассмотрения:
- Набор бенчмарков должен быть импортируемым с любой версией NumPy.
- Параметры бенчмарка и т.д. не должны зависеть от установленной версии NumPy.
- Постарайтесь поддерживать разумное время выполнения бенчмарка.
- Предпочитайте методы ASV
time_для измерения времени бенчмаркинга, а не вычисление времени вручную черезtime.clock, даже если это потребует некоторой настройки при написании бенчмарка. - Подготовка массивов и т.д. обычно должна помещаться в метод
setup, а не в методыtime_, чтобы избежать подсчета времени подготовки вместе со временем измеряемой операции. - Учитывайте, что большие массивы, созданные с помощью
np.emptyилиnp.zeros, могут не быть выделены в физической памяти до доступа к памяти. Если это нужно, убедитесь, что это прокомментировано в вашем setup функции. Если вы бенчмарките алгоритм, вряд ли пользователь будет запускать этот алгоритм на только что созданном пустом/нулевом массиве. Вы можете вызвать страницы ошибок в процессе настройки, вызвавnp.onesилиarr.fill(value)после создания массива.
© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.18/benchmarking.html