Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.02;
Скачать: CL | DM;

Вниз

Есть ли в Дельфи оптимизация кода?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
1-2206
Rudy
2004-01-20 21:02
2004.02.02
Какое сообщение нужно послать для того чтобы в чужом приложении в


14-2278
Centurion
2004-01-09 16:30
2004.02.02
монаж видео


3-1986
smu
2004-01-08 15:44
2004.02.02
Как поставить BDE без Delphi?


1-2230
LordAlex
2004-01-20 14:16
2004.02.02
Время выполнения...


14-2341
Труп Васи Доброго
2004-01-10 08:59
2004.02.02
Мародёры!!! Ник украли!!! Маздай полный!!!