проверь производительность exe через код - PullRequest
0 голосов
/ 11 ноября 2011

Я хочу проверить производительность приложения (чей exe-файл, у меня нет исходного кода), запустив его несколько раз и, возможно, сравнить результаты, не находя много информации в Интернете по этой теме,

Поскольку мне приходится делать это несколько раз, я подумал, что выполнение кода с помощью кода (без полосы на используемом языке) может упростить задачу, поскольку мне, возможно, придется повторять их много раз, Может ли кто-нибудь помочь мне начать ???

Примечание: под производительностью я подразумеваю использование памяти, процессор и, возможно, время, потраченное на это!

(в настоящее время я использую perfmon на окнах, используя необходимые счетчики для проверки этих параметров и записывая их вручную)

Спасибо

Ответы [ 5 ]

1 голос
/ 11 ноября 2011

В другой пост была упомянута утилита с именем timethis.exe для измерения времени под Windows.Может быть, это полезно для ваших целей.

1 голос
/ 11 ноября 2011

Я думаю, что вы могли бы создать bash / batch-скрипт для вызова вашей программы столько раз, сколько вам нужно и с разными входами.

После этого ваш сценарий может создать файл CSV, содержащий время, необходимое для выполнения вашей программы (например, даты начала и окончания). Файлы CSV обычно совместимы с большинством программ для работы с электронными таблицами, такими как Excel, поэтому я думаю, что это облегчит вам обработку ваших данных, например, создание средств и стандартных отклонений.

Мне нечего сказать по поводу использования памяти и процессора, но если вы находитесь в Windows, вам не помешает взглянуть на Process Explorer и Process Monitor (вы можете найти их в это страница). Я думаю, что они могут помочь вам в вашей задаче.

Наконец, если вы работаете в Linux, я думаю, что вы можете использовать grep с командой top для сбора статистики.

С уважением,

Felipe

1 голос
/ 11 ноября 2011

Если вам нужны точные результаты, Rational Purify (в Windows) или valgrind (в Linux) - лучшие инструменты; они запускают ваше приложение на виртуальной машине, которой можно поручить точный подсчет циклов.

1 голос
/ 11 ноября 2011

Сильно зависит от вашей операционной системы . В Linux вы можете использовать утилиту time . И strace может помочь вам понять, какие системные вызовы используются.

Я не имею представления об аналоге в системах Windows.

0 голосов
/ 04 июля 2012

Я использовал перформанс, который я использую, чтобы автоматически записывать, то есть я использовал класс счетчика производительности, доступный в точечной сети, и регулярно получал образцы конкретного приложения и генерировал график с этими значениями.

Спасибо:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...