Самьюэл Алекс
Шрифт:
A.3. Профилирование
Теперь, когда мы знаем, как искать ошибки в программах, настало время разобраться, как ускорить выполнение программы. Профайлер
Для получения профильной информации необходимо следовать такому алгоритму.
1. Скомпилируйте и скомпонуйте программу с опциями профилирования.
2. Запустите программу, чтобы сгенерировать профильные данные.
3. Вызовите утилиту
А.3.1. Простейший калькулятор
Для иллюстрации методики профилирования мы напишем простейшую программу- калькулятор. Чтобы программа выполнялась нетривиальным образом, заставим ее работать с унарными числами, чего не встречается в реальных калькуляторах. Код программы приведен в конце приложения.
Значение унарного числа представляется аналогичным количеством символов. Например, число 1 — это "x", 2 — "xx", 3 — "xxx" и т.д. Вместо символов "x" программа использует связный список, количество элементов которого соответствует значению числа. В файле
Калькулятор принимает однострочные постфиксные выражения [40] и отображает значение каждого выражения:
Калькулятор, реализованный в файле
40
В постфиксной записи бинарный оператор ставится после операндов, а не между ними. Например, чтобы умножить 6 на 8, нужно записать 6 8 *. Чтобы умножить 6 на 8, а затем добавить 5, следует записать 6 8 * 5 +.