Я выполняю некоторую работу по прототипированию на C, и я хочу сравнить, как долго программа выполняет различные небольшие модификации.Измерение производительности/профилирования в C
Я пользуюсь clock
; от K & R:
clock
возвращает время процессора, используемое программа с начала выполнения, или-1
, если недоступны.
Это кажется мне разумным и дает результаты, которые в целом соответствуют моим ожиданиям. Но есть ли что-то лучшее для использования, чтобы увидеть, какие изменения улучшают/ухудшают эффективность моего кода?
Обновление: меня интересуют как Windows, так и Linux; то, что работает на обоих, было бы идеальным.
Обновление 2: Меня интересует профилирование сложная проблема, чем общее время цикла/циклы, используемые для простой программы от начала до конца - я уже знаю, какие части моей программы медленны. clock
, похоже, соответствует этому счету, но я не знаю, насколько он уязвим, например, для других процессов, работающих в фоновом режиме, и пережевывания процессорного времени.
Я не знаю профилеровщика, который работает на более чем одном O/S. Используйте либо более одного (для каждого O/S), либо используйте один для одного O/S, и надейтесь, что улучшения, которые вы делаете в результате профилирования на одной платформе, автоматически будут улучшены и на другой платформе. – ChrisW