Spec-Zone.ru › NumPy 1.18

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API