Найти - Пользователи
Полная версия: Универсальный способ оценки производительности кода
Начало » Python для новичков » Универсальный способ оценки производительности кода
1
pasaranax
Соседняя тема о палиндромах и количестве итераций навела на мысль, что неплохо было бы придумать некоторый рейтинг производительности кода (если не велосипед, конечно). В той теме все считали количество итераций, что сомнительно оценивает производительность. А компьютеры у всех разные и скорость выполнения в секундах тоже не показатель, который бы можно было показать на форуме. Посему хочу предложить следующий метод. В экономике есть понятие “потребительская корзина”, вот и здесь можно создать некую “корзину кода”, в которую будет включаться набор различных операций: циклы, преобразования типов, вызовы функций и тд (нужно правильно соотношения подобрать). Программист выполняет эту “корзину” на своем компьютере и засекает время. Далее, для получения рейтинга производительности любого кода, время выполнения этого кода делится на время выполнения “корзины” и получается оценку скорости, которая теоретически должна быть одинакова для одного и того же кода на любом компьютере. То есть: R = C / B, где, R - рейтинг, C - время выполнения оцениваемого кода, B - время выполнения “корзины”.
Если эта идея имеет право на жизнь, то нужна помощь в составлении “корзины”, которая действительно описывала бы производительность конкретной машины.
Андрей Светлов
Уже придумали до нас :)
http://code.google.com/p/unladen-swallow/source/browse/tests/performance/richards.py
http://code.google.com/p/unladen-swallow/source/browse/tests/performance/pystone.py
http://svn.python.org/view/python/trunk/Tools/pybench/

Последний, вроде бы, лучше всех по отзывам.
Но я использовал только PyStone.
pasaranax
Спасибо )
Правда, это не совсем то. Они все оценивают производительность самого питона, а не произвольного кода или хотя бы скрипта. Можно, конечно, с использованием этого написать простой оценщик кода.
Андрей Светлов
То, что они меряют - это ваша “корзина”.
Правда, есть проблема: число получается “плюс-минус трамвайная остановка”
pasaranax
Это я понял, значит большая часть работы выполнена. Я в разделел с проектами сделал тему, посмотрите, кому интересно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB