Delphi.cz

Český portál Delphi

Rychlost výsledného kódu u jednotlivých verzí Delphi

Přiznám se, že toto jsem neplánoval.

Jak jsem připravoval tu soutěž ohledně programování, tak jsem si to samozřejmě musel referenčně zkusit. Psal jsem to v Delphi 2010 a po odladění mne napadlo, zda to půjde přeložit i neunicode verzí - samozřejmě to šlo bez problémů, ale rychlost zpracování byla celkem rozdílná a to jsem v podstatě nic neměnil - kromě odstranění direktiv, kterým starší verze nerozumí.

No a když už jsem byl v tom, tak jsem to zkusil se všemi verzemi co mám nainstalované. A tady je výsledek.

Jedná se o syntetický test, ale přesto něco ukazuje. Velikosti EXE jsou převážně způsobené použitím Classes, což v případě D2010 přilinkovalo velké množství RTTI informací.

Jen pro jistotu: pro tento test jsou použita jiná data než pro soutěž, takže z toho nic nevyvozujte ohledně rychlosti vaší implementace.

Verze         "čas" - Velikost EXE

Delphi 5    - 12781 - 58880
Delphi 7    - 10125 - 88576
Delphi 2007 - 4562  - 94208
Delphi 2009 - 6610  - 147968
Delphi 2010 - 6579  - 300544

Velmi mne zarazil rozdíl mezi Delphi 2007 a staršími verzemi. Je evidentní, že optimalizace v RTL a lepší generování kódu se fakt vyplatilo.

D2009 je první unicode verze - je tam to nešťastné testování řetězců v RTL pro kompatibilitu s C++Builderem. Ale i tak to není špatné. Navíc toto testování se určitě odstraní.

Datum: 2010-07-16 22:23:00 Tagy: verze, optimalizace, kompilátor

Optimalizace