Найти - Пользователи
Полная версия: Время запуска сишных функций
Начало » Python для экспертов » Время запуска сишных функций
1
Yurietc
Здравствуйте.
Есть проект, написанный на С++. Возможно ли написать систему тестирования производительности (время выполнения, затрачиваемые ресурсы …) на питоне ? Интересует какую погрешность будет давать вызов сишных функций питоном, и соответственно порог точности измерений.
Например функция на С++ выполняется 5 с (время, которое и нужно померять), и нас устроит погрешность в 0.5 с, тогда интуитивно можно догадаться, что можно пренебречь погрешностью, вносимую питоном. Вопрос, как оценить пороговые значения, при которых использование питона недопустимо.
sypper-pit
как то всё расплывчато написано, возможно ли получить более подробное описание что именно тестировать, и не плохо бы исходники посмотреть. На крайний случай отсылать запросы в dll если есть уже готовые библиотеки. Оптимизация кода-это сильная магия и тут единственного пути нет. Так что, опишите плз подробнее.
Yurietc
Да в том и дело, что исходников на питоне еще нет. Только оцениваю возможен ли в принципе такой подход. Я не имел в виду оптимизацию. Попробую описать более подробно.

Есть функция на С. Нужно измерить сколько времени она выполняется.
Идея такая - используя свиг, вызывать ее в питоновском модуле. Используя профайлер замерить время выполнения.

Для функционального тестирования подход приемлем - очень удобно на питоне описывать тест кейсы (последовательно запускать нужные функции, передавать им параметры и анализировать вывод). Но если нужно протестировать время выполнения, то придется учитывать время выполнения питоновского кода так как все сишные функции запускаются через питон.
Думал перед тем как написать тест и померять спросить может кто-то уже подобным занимался. Не хочется придумывать велосипед. Но в принципе проверка не должна занять много времени. Если будет что-то интересное - напишу.
sypper-pit
можно замерить исполнение кода на “C” стандартными утилитами , потом написать ваш модуль и после этого просто отнять (общая_скорость-скорость_отработки_С_кода), а вообще http://stackoverflow.com/questions/766335/python-speed-testing-time-difference-milliseconds так же обсуждали на форуме http://python.su/forum/viewtopic.php?id=9976 а на закуску http://theunixgeek.blogspot.com/2008/09/c-vs-python-speed.html и http://habrahabr.ru/blogs/programming/66562/
sypper-pit
а еще интересно если то вот http://ru.wikipedia.org/wiki/Psyco
o7412369815963
Я бы сделал так: откомпиллировал ф-ию через gcc, а потом запустил-замерил скорость выполнения через subprocess, при этом можно будет воспользоватся bash командой time которая выдаст более точную и детальную информацию. хотя для ф-ий в 5сек достаточно просто через subprocess.
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