Здравствуйте! Мне нужно измерить время выполнения программы для очень критической по времени среде. Но сами измерения выполняются на более мощном тестовом стенде.
Сперва я подумал на linux-утилиту time
, что было бы идеально, если бы она показывала время в тиках, но она показывает время в секундах с точностью до тысячных, а поскольку на тестовом стенде процессор в несколько ГГц, даже изменение в несколько тысяч тиков будет сложно отследить таким образом.
Тогда я подумал, что можно было бы отредактировать программу, чтобы изменить точку входа на обёрточную функцию, которая сама вызовет main
и зафиксирует точное время в тиках до и после выполнения main
. Но с этим есть пару проблем: так не получится рассчитать время инициализации глобальных переменных и объектов классов; я не знаю, как отделить время user и sys от real (всё же на тестовом стенде много процессов); да и не факт, что компилятор что-то не переделает по другому при наличии доп. кода и другой точки входа, что повлияет на время выполнения.
Кто-нибудь знает, как замерять время в тиках?