Home

Page 42
Page 42
background image

Минимизация и

Вывод: когда вы сдвигаете число вправо на одну позицию, то вы делите

его на 2.

Сдвиг влево — возьмем то же самое число

 Если сдвинуть его

влево на одну позицию, то с правой стороны освободится место, которое

заполняется нулем —

 Теперь переведите это число в десятич-

ную систему. Должно получится 396. Что оно вам напоминает? Это 198,

умноженное на 2.

Вывод: когда вы сдвигаете число вправо, то вы делите его на 2; когда

сдвигаете влево, то умножаете его на 2. Так что используйте эти сдвиги

везде, где возможно, потому что сдвиги работают в десятки раз быстрее

умножения и деления.

3. При создании процедур не обременяйте их большим количеством вход-

ных параметров. Перед каждым вызовом процедуры ее параметры поднима-
ются в специальную область памяти (стек), а после входа изымаются оттуда.

Чем больше параметров, тем больше расходы на общение со стеком.

Тут же нужно сказать, что вы должны действовать аккуратно и с самими

параметрами. Не вздумайте пересылать процедурам переменные, которые

могут содержать данные большого объема в чистом виде. Лучше передать
адрес ячейки памяти, где хранятся данные, а внутри процедуры работать
с этим адресом. Вот представьте себе ситуацию, когда вам нужно пере-

дать текст размером в один том "Войны и

 Перед входом в про-

цедуру программа попытается вогнать все это в стек. Если вы не увидите
его переполнения, то задержка точно будет значительная.

4. В самых критичных моментах (как, например, вывод на экран) можно

воспользоваться языком Assembler. Даже встроенный в Delphi или C++

ассемблер намного быстрее штатных функций языка. Ну а если скорость

в каком-то месте уж слишком критична, то код ассемблера можно выне-

сти в отдельный модуль. Там его нужно откомпилировать с помощью
компиляторов TASM или MASM и подключить к своей программе.

Ассемблер достаточно быстрая и компактная вещь, но писать достаточно

большой проект только на нем — это очень сложно. Поэтому я советую

им не увлекаться и использовать его только в самых критичных для ско-

рости местах.

ЗАКОН № 6

Для сложных расчетов можно заготовить таблицы с заранее рассчитанными

результатами и потом использовать эти таблицы в реальном режиме времени.

Когда появился первый Doom, игровой мир поразился качеству графики и ско-

рости работы. Это действительно был шедевр

 мысли, потому

что компьютеры того времени не могли рассчитывать трехмерную графику

в реальном времени. В те годы еще даже и не думали о


Copyright © 2020 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.