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