vložil Radek Červinka
28. února 2011 21:29
Tak jo, zde jsou výsledky. Když jsem tuto optimalizační soutěž navrhoval, tipoval jsem limit tak kolem 100ms. Navrhoval jsem úlohu, která je dostatečně rychlá na základní naprogramování, má potenciál na optimalizaci a která by se dala celkem jednoduše paralelně zpracovávat. Výsledek mne opravdu překvapil.Více...
vložil Radek Červinka
25. září 2010 00:12
Ještě malá poznámka k inline optimalizacím. Tentokrát na ni upozornil přímo Allen Bauer a dokud na ni neupozornil on, tak jsem si tuto souvislost neuvědomil.
Mějme následující kvalitní kód:
1program InlineTest;
2
3
4uses
5 SysUtils;
6
7var
8 s : string;
9begin
10 s:= 'Test';
11 writeln(s);
12 writeln(Length(s));
13end.
Více...
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.Více...
vložil Radek Červinka
27. května 2010 23:01
Předchůdcem anonymních metod z Delphi 2009 jsou vložené (nested) procedury. To ale neznamená, že by éra vložených procedur skončila. Osobně je rád používám na zpřehlednění kódu v případě trošku delší procedury nebo na lokální provedení opakované akce. Hlavní výhodou je možnost přístupu k lokálním proměnným dané procedury.Více...
vložil Radek Červinka
12. dubna 2010 23:42
Blog Synopse a jeho autor Arnaud Bouchez nabízí několik unikátních (open source) komponent a to velmi profesionálně napsaných.
O jeho unikátním JSON frameworku pro SQLite jsem již psal a také optimalizovaná RTL pro Delphi 7 a 2007 si zasloužila zápis. Proto jsem ze zvědavosti prošmejdil jeho blog v naději, že ještě na něco narazím a nebyl jsem zklamán. Tento maník je velmi produktivní a hodně svého kvalitního kódu poskytuje nám obyčejným programátorům a zadarmo.Více...
vložil Radek Červinka
10. února 2010 00:46
Při procházení různých konferencí jsem narazil na příspěvek od dřívějšího hlavního vývojáře kompilátoru Delphi Dannyho Thorpe.
V největší diskuzní skupině o Delphi (public.delphi.non-technical) se kdysi někdo zeptal, jaké vlastně optimalizace Delphi používá a dočkal se odpovědi od Dannyho Thorpe (Delphi Compiler Core blog), nyní už ex codegear. Stav odpovídá roku 2005.
Nechám ho raději častečně v originále, protože neznám přesnou českou terminologii pro některé optimalizace. Některé optimalizace jsem tipoval, některé mne celkem překvapují. Vytahuji ho na světlo, jelikož mne zaujal a jelikož je tam beznadějně zahrabaný.Více...
vložil Radek Červinka
4. února 2010 00:32
Předpokládám, že je to všeobecně známo jelikož se to píše všude, ale přesto. V unicode verzích Delphi (tj. 2009 a 2010) je pro lepší kompatibilitu s C++ Builderem implementována možnost lepší detekce správnosti hodnoty typu string. Rovnou říkám, že se jednalo o přechodné období, protože v budoucích Delphi to již nebude, jak napsal Allen Bauer na svém blogu.
Připomínám, že přechod na unicode je největší skok v historii Delphi, podobné je snad jen Delphi 1 (16 bit) -> Delphi 2 (32 bit).
Ale zpět. Tuto kontrolu klidně můžete vypnout (což už určitě máte) v případě, že používáte jen Delphi a tímto krokem získáte určité malé zrychlení.Více...
vložil Radek Červinka
8. ledna 2010 23:58
update: Již i verze pro Delphi 2007
Na webu se objevila neoficiální optimalizovaná verze RTL knihovny z Delphi 7, resp. z licenčních důvodů jen její diff. Autoři tvrdí, že ji používají v kritických projektech a podle popisu a používaných knihoven to vypadá zajímavě. Na zmiňované stránce je přehled změn.
Součástí je např. FastMM, některé části FastCode, části RTL optimalizované a opravené některé chyby ve Windows Vista, takže pokud používáte Delphi 7 tak to asi stojí aspoň za pohled.