Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 2, 2009 17:12:16

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

Оценщик производительности кода

Написал оценщика, который использует pystones в качестве бенчмарка (идет в комплекте). Он просто сравнивает время выполнения бенчмарка с временем выполнения участка кода по формуле: рейтинг = времяВыполненияКода / времяВыполненияБенчмарка. Таким образом получается псевдоплатформонезависимая оценка производительности.
Скачать
При запуске main.py выведет тестовый рейтинг, который теоретически должен быть одинаковым на любой машине. Посмотрите, пожалуйста, кому не лень.

Для оценки произвольного кода используется следующим образом:

cr = CodeRater().start()
...здесь оцениваемый код...
print cr.stop() # выведет рейтинг



Отредактировано (Окт. 2, 2009 18:41:13)

Офлайн

#2 Окт. 2, 2009 18:18:15

Griffon
От: Ukrain, Zaporozhie
Зарегистрирован: 2009-03-04
Сообщения: 324
Репутация: +  11  -
Профиль   Отправить e-mail  

Оценщик производительности кода

Я юзаю тройку :)
Подредактировал pystones, подредактировал твой код.
Тестовый код поменял на list(range(…)) Ибо иначе деление на ноль в твоём коде.
Получил 166

На 2.6 получил 246.81



Отредактировано (Окт. 2, 2009 18:23:33)

Офлайн

#3 Окт. 2, 2009 18:37:56

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

Оценщик производительности кода

У меня на 2.6 если range заменить на list(range), то около 262 выдает.
А в каком месте деление на ноль получается? Я вроде делю только на константы. Я его кстати немножко подредактировал, скачай новый.



Отредактировано (Окт. 2, 2009 18:39:09)

Офлайн

#4 Окт. 2, 2009 18:39:42

Griffon
От: Ukrain, Zaporozhie
Зарегистрирован: 2009-03-04
Сообщения: 324
Репутация: +  11  -
Профиль   Отправить e-mail  

Оценщик производительности кода

В 2.6 я ничего не менял. Просто в тройке range это xrange. Соответственно выполняется мгновенно. Потому и поменял на list().
Там где ты определяешь итоговое значение. Если код выполняется очень быстро то delta == 0.



Отредактировано (Окт. 2, 2009 18:41:34)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version