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

vložil Radek Červinka 16. července 2010 23:23

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í.


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: , ,

Optimalizace

Komentáře

10.12.2012 13:40:51 #

Daniel Andrascik

Pekne je to takto vidiet spisane do tabulky. Aj ked je test ako hovoris "synteticky" nechcel by si ho aktualizovat aj pre novsie verzie delphi? Stacilo by od D2007 po sucasne XE3. Ja nemam sancu dostat sa ku vsetkym IDE aby som si to vyskusal...

Daniel Andrascik

10.12.2012 14:11:59 #

radekc

To je problém, mam už jiný počítač, takže bych to musel znova všechno zkoušet a hlavně už nemám některé verze nainstalované.

Obecně platí, že od 2006 jsou jak RTL optimalizovanější (s tím, že se postupně optimalizovalo), tak i některé části kompilátoru produkují optimálnější kód. Mezi 2007 a 2009 je menší skok zpět, k vůli unicode.

radekc

14.12.2012 15:47:32 #

Daniel Andrascik

A aspon ten kod s ktorym si to meral nahaodou este nemas? Momentalne mam na pokusy nainstalovane dve, alebo tri IDE (neviem ci to tretie je este prevadzky schopne) a prave som si spomenul ze asi ku dvom verziam mam odlozene aspon kompilatory pouzitelne cez prikazovy riadok...

Daniel Andrascik

Komentování ukončeno

Naše nabídka

Partial English version.

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy nebo burzy práce).

Pokud chcete podpořit tento server libovolnou částkou, můžete použít PayPal. Moc děkuji.

Delphi Certified Developer

O Delphi.cz

Delphi je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64 , Mac OSX a na iPhone a Android (s výhledem na další platformy díky FireMonkey) na současném trhu (včetně Windows 8.1).

V současnosti je světová komunita přes dva miliónů vývojářů.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Anketa

Poslední komentáře

Comment RSS