Aamir Yousafi Ответов: 1

Инструмент для точного тестирования производительности программы / алгоритма


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

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

Что я уже пробовал:

Гуглить и искать на этих форумах.

1 Ответов

Рейтинг:
1

Patrice T

Простого хронометража программы может быть достаточно. В начале сохраните время в переменной, запустите программу, прочтите время в конце, разница заключается в вашем времени выполнения.
Если программа слишком быстра, поместите ее в цикл и запустите столько раз, сколько потребуется.

StartTime = Timer
For RunCount = 1 to 10
    ' My Program Here
Next
EndTime = Timer
RunTime = EndTime - StartTime

если вам нужны более подробные сведения, профайлер может помочь.


Aamir Yousafi

Мне нужна не только среда выполнения. На самом деле, когда я запускаю файл .exe в Windows, я получаю время выполнения в консоли MS-DOS.

Да, мне нужны подробности. Я найду хорошего профайлера.

Patrice T

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

Aamir Yousafi

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