Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
14-2365
endeavor
2004-01-10 11:03
2004.02.02
ДОЛОЙ ГРУБИЯНОВ!!!


3-1951
ish
2004-01-09 16:12
2004.02.02
SQL Query


6-2250
beemaster
2003-11-26 21:08
2004.02.02
Как узнать свой host из cервиса


1-2201
Юрий Ж.
2004-01-20 21:53
2004.02.02
СВОЙ (!!!) упаковщик


4-2401
andruxin
2003-11-27 14:51
2004.02.02
TListView. Как сделать элементы разными цветами.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский