|
Каждая машина и каждый компилятор имеют некоторые особенности, изучение и использование которых позволит более эффективно компилировать и выполнять программу. Информацию такого типа можно получить, изучая листинги ассемблера.
Например, в одном широко распространенном компиляторе ФОРТРАНа сделано так, что если номера операторов распределены равномерно по всему диапазону, то программа будет компилироваться быстрее. Эта ситуация возникает потому, что компилятор для своих внутренних потребностей располагает номера операторов в таблицы, состоящие из строк, в которых во время компилирования выполняется многократный поиск. Если количество входов в каждую строку примерно одинаково, сокращается среднее время, необходимое для нахождения номера оператора.
Номера операторов записывают в пяти строках таблицы согласно последней цифре номера оператора. Номера операторов, оканчивающиеся на 0 или 1, размещаются в первой строке, на 2 или 3 — во второй строке, на 4 или 5 — в третьей и т. д. Таким образом, если номера операторов распределены равномерно, сокращается время компилирования1*.
Подобная ситуация имеет место и с именами переменных. Имена записываются в строки в соответствии с длиной имени переменной. Имена, имеющие длину в один символ, записываются в первой строке, имена из дв!ух символов — во второй строке и т.-д. Таким образом, если имена распределены довольно равномерно по разным строкам, затрачивается меньше времени на нахождение каждого имени.
Изложенные здесь замечания показывают, что, если эффективность очень важна, вы должны знать не только общие приемы, позволяющие ее повысить, но также и обладать некоторыми сведениями о машине, ее компиляторе и операционной системе.
⇐3.22. Модули || Оглавление || 3.24. Заключение3⇒
|