Бенчмаркинг под Windows - PullRequest
       6

Бенчмаркинг под Windows

0 голосов
/ 21 января 2011

В большинстве Unix-подобных систем вы можете использовать команду "time", чтобы выполнить программу и указать, сколько пространства и времени она использовала. Кто-нибудь знает что-нибудь сопоставимое для Windows?

(Нет, я не особо хочу потратить 6 месяцев на изучение Win32 API только для этого ...)

Ответы [ 3 ]

0 голосов
/ 04 марта 2011

Если вы хотите получить что-то с точностью до миллисекунды (что сравнимо с тем, что даст вам linux / unix time), тогда вам нужно timeGetTime () .Возвращает количество миллисекунд с момента загрузки системы.включите mmsystem.h и ссылку на winmm.lib.Тем не менее, все это просто даст вам значение времени, вам нужно будет либо сделать между ними вызов system(), либо сделать что-то вроде дампа времени начала в файл при первом вызове, а затем прочитать его.во второй раз.

Более прагматичные решения, которые могут оказаться более полезными в зависимости от ваших обстоятельств:

  • Напишите пакетный сценарий для вызова программы, которую вы хотите тестировать и переносить.это так, что он записывает в файл:

    echo "start" >> log.txt do_my_stuff.exe echo "stop" >> log.txt

    и затем использует инструмент как отличный LogExpert , чтобы посмотреть метки времени

  • Установите инструменты Cygwin и используйте time, который идет с этим.Если вам нужно сделать это только на вашем собственном компьютере, а тестовая программа не требует сложной настройки (параметры командной строки, переменные среды и т. Д.), То это может быть самым простым подходом.

0 голосов
/ 04 марта 2011

Я использую утилиту 'time' в Windows тоже.Поставляется с mingw + msys.

0 голосов
/ 04 марта 2011

Из командной строки (низкое разрешение, возможно неточное): эхо% дата%% время%

Программно: QueryPerformanceCounter. http://msdn.microsoft.com/en-us/library/ms644904(v=vs.85).aspx

...