Форум: "Потрепаться";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
ВнизЕсть ли в Дельфи оптимизация кода? Найти похожие ветки
← →
Rauf (2004-01-13 01:59) [0]Ну типа той, которую предоставляет Visual Studio, оптимизация под процессор, инлайн (в понимании C++) функции и т.д.???
← →
SkyRanger (2004-01-13 09:40) [1]Инлайн есть, еще с турбо паскаля, а оптимизация... ХЗ...
А нафиг она нужна??? Или вы решили писать что нить крутое под 4 пень???
← →
Anatoly Podgoretsky (2004-01-13 09:42) [2]Visual Studio это компилятор?
← →
Johnmen (2004-01-13 09:44) [3]>оптимизация кода
Конечно, да.
>оптимизация под процессор
Конечно, нет.
← →
Dimka Maslov (2004-01-13 09:45) [4]Даже полная оптимизация в MSVS не даёт заметных улучшений, ни в скорости кода, ни в его размере. В Дельфе оптимизатор есть, но такой, что или включен или выключен, и тоже даёт эффект, стремящийся к бесконечности.
← →
PVOzerski (2004-01-13 10:52) [5]>Инлайн есть, еще с турбо паскаля, а оптимизация... ХЗ...
Да вот только это не совсем тот inline, что в Сях, да и в 32-разрядных версиях Delphi эта директива вообще не функциональна (впрочем, как в D7-8, не знаю). Вот из справки D6:
>The reserved word inline and the directive assembler are
>maintained for backward compatibility only. They have no effect
>on the compiler.
А вот что написано там же о директиве компилятора {$O+} (речь идет не о TP/DOS, где эта директива имеет другой смысл):
Type Switch
Syntax {$O+} or {$O-}
{$OPTIMIZATION ON} or {$OPTIMIZATION OFF}
Default {$O+}
{$OPTIMIZATION ON}
Scope Local
The $O directive controls code optimization. In the {$O+} state, the compiler performs a number of code optimizations, such as placing variables in CPU registers, eliminating common subexpressions, and generating induction variables. In the {$O-} state, all such optimizations are disabled.
Other than for certain debugging situations, you should never have a need to turn optimizations off. All optimizations performed by the Object Pascal compiler are guaranteed not to alter the meaning of a program. In other words, Delphi performs no "unsafe" optimizations that require special awareness by the programmer.
Note: The $O directive can only turn optimization on or off for an entire procedure or function. You can’t turn optimization on or off for a single line or group of lines within a routine.
Из этого следует, что оптимизация-то есть, но система управления ею очень негибкая. Кстати, во FreePascal управление оптимизацией сделано более гибко. Вот что сообщает компилятор FPC 1.9 (i386) о своих возможностях:
-O<x> optimizations:
-Og generate smaller code
-OG generate faster code (default)
-Or keep certain variables in registers
-Ou enable uncertain optimizations (see docs)
-O1 level 1 optimizations (quick optimizations)
-O2 level 2 optimizations (-O1 + slower optimizations)
-O3 level 3 optimizations (-O2 repeatedly, max 5 times)
-Op<x> target processor:
-Op1 set target processor to 386/486
-Op2 set target processor to Pentium/PentiumMMX (tm)
-Op3 set target processor to PPro/PII/c6x86/K6 (tm)
← →
REA (2004-01-13 11:38) [6]В этом смысле С-Builder и то лучше
← →
}|{yk (2004-01-13 12:55) [7]С-Builder - труп. Или вам это не ясно. А о мертвых или хорошо, или ничего. Об этом ничего
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c