По мотивам - http://programmingmindstream.blogspot.ru/2014/05/arc.html
Пусть мы печатаем документ.
И пусть мы делаем это используя не TCanvas, а ICanvas.
И пусть "машина печати" имеет свойство Canvas типа ICanvas.
Так вот.
500 страниц Налогового Кодекса с 40-ка параграфами на страницу приводит вот к чему.
Как минимум для каждого параграфа мы получаем канву и сохраняем её в локальную переменную.
Это - 500*40*2 = 40000 операций InterlockedIncrement/Decrement. За "просто так".
Понятное дело, что можно и по-другому оптимизировать. Например не получать канву "на каждый чих". И при этом не забывать ставить модификатор const перед ВХОДНЫМИ интерфейсными параметрами. Ибо если не поставить const то имеем пару InterlockedIncrement/Decrement.
Пусть мы печатаем документ.
И пусть мы делаем это используя не TCanvas, а ICanvas.
И пусть "машина печати" имеет свойство Canvas типа ICanvas.
Так вот.
500 страниц Налогового Кодекса с 40-ка параграфами на страницу приводит вот к чему.
Как минимум для каждого параграфа мы получаем канву и сохраняем её в локальную переменную.
Это - 500*40*2 = 40000 операций InterlockedIncrement/Decrement. За "просто так".
Понятное дело, что можно и по-другому оптимизировать. Например не получать канву "на каждый чих". И при этом не забывать ставить модификатор const перед ВХОДНЫМИ интерфейсными параметрами. Ибо если не поставить const то имеем пару InterlockedIncrement/Decrement.
Комментариев нет:
Отправить комментарий