Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 2, 2009 02:20:35

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

Универсальный способ оценки производительности кода

Соседняя тема о палиндромах и количестве итераций навела на мысль, что неплохо было бы придумать некоторый рейтинг производительности кода (если не велосипед, конечно). В той теме все считали количество итераций, что сомнительно оценивает производительность. А компьютеры у всех разные и скорость выполнения в секундах тоже не показатель, который бы можно было показать на форуме. Посему хочу предложить следующий метод. В экономике есть понятие “потребительская корзина”, вот и здесь можно создать некую “корзину кода”, в которую будет включаться набор различных операций: циклы, преобразования типов, вызовы функций и тд (нужно правильно соотношения подобрать). Программист выполняет эту “корзину” на своем компьютере и засекает время. Далее, для получения рейтинга производительности любого кода, время выполнения этого кода делится на время выполнения “корзины” и получается оценку скорости, которая теоретически должна быть одинакова для одного и того же кода на любом компьютере. То есть: R = C / B, где, R - рейтинг, C - время выполнения оцениваемого кода, B - время выполнения “корзины”.
Если эта идея имеет право на жизнь, то нужна помощь в составлении “корзины”, которая действительно описывала бы производительность конкретной машины.



Офлайн

#2 Окт. 2, 2009 03:25:17

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Универсальный способ оценки производительности кода

Уже придумали до нас :)
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.



Офлайн

#3 Окт. 2, 2009 15:02:14

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

Универсальный способ оценки производительности кода

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



Отредактировано (Окт. 2, 2009 15:07:52)

Офлайн

#4 Окт. 2, 2009 16:56:17

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Универсальный способ оценки производительности кода

То, что они меряют - это ваша “корзина”.
Правда, есть проблема: число получается “плюс-минус трамвайная остановка”



Офлайн

#5 Окт. 2, 2009 17:15:28

pasaranax
От:
Зарегистрирован: 2009-06-13
Сообщения: 574
Репутация: +  0  -
Профиль   Отправить e-mail  

Универсальный способ оценки производительности кода

Это я понял, значит большая часть работы выполнена. Я в разделел с проектами сделал тему, посмотрите, кому интересно.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version