2014-04-27 6 views
1

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

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

Будет ли это хорошим подходом? Какие еще варианты я мог бы изучить? Каким будет мой лучший выбор, пытаясь выполнить время с хорошим уровнем точности?

+1

Измерение времени процессора или времени на стене? –

+0

Вы рассмотрели системный вызов 'gettimeofday()'? – lrobb

ответ

0

Если у вас нет особых требований, вы можете использовать только /bin/time или time (shell buildin с аналогичной функциональностью).

+0

Использует ли 'time'' gettimeofday() '? Кроме того, что происходит, когда «время» заменяется, когда у вас слабый процессор? – lrobb

+0

@lrobb Я так не думаю, что он использовал бы системные вызовы, такие как 'times (2)' или 'getrusage (2)', но я не проверял детали. Вы можете проверить [источники версии GNU версии] (ftp://prep.ai.mit.edu/pub/gnu/time/), если вы заинтересованы. – marbu

Смежные вопросы