Delphi.cz

Český portál Delphi

Rozcestník: Jste tu poprvé? Pro začátečníky jsem napsal úvod do programování v Delphi. Můžete si přečíst informace ohledně změn v jednotlivých verzích Delphi a případně mezi jednotlivými edicemi Delphi. Pokud přecházíte ze starších verzí tak řetezce a unicode.
Možná Vás bude zajímat spolupráce databáze a Delphi, nebo se budete rozhodovat mezi různými druhy Delphi projektů.

Navštivte adresář nejpopulárnějších open source Delphi komponent

Platform status - podporované platformy v jednotlivých verzích

Free Delphi Starter Edition download

Potřebujete Delphi školení nebo konzultace na různá témata?

Případ FieldByName

Jak se tak potuluji po zákaznících se školením nebo konzultacemi, tak narážím na opakovanou situaci s FieldByName (případně podobnými funkcemi).

Více...

Datum: 2018-03-05 23:36:00 Tagy: db, ladeni, optimalizace

Optimalizace Praxe

Náhodné výkřiky 53

Další díl užitečných věcí pro Delphi a FPC. Dnes JScript a R pro Object Pascal, nějaké game engine, VULKAN API a další.

Více...

Datum: 2016-03-23 23:17:00 Tagy: vykriky, grafika, hry, FPC

Komponenty Optimalizace

Spider - nový Delphi free profiler

Když jsem potřeboval profilovat tak jsem většinou používal Sampling profiler. Nyní se ale objevil zajímavý program Spider (zdrojáky) a některé jeho parametry jsou velmi speciální. Např. to, že je to jak sampling, tak podle mne instrumentační profiler (ale bez zásahu do zdrojového kódu - pracuje přímo s EXE v paměti).

Další velmi zajímavou vlastností je podpora více vláken s tím, že se navíc zobrazuje jak jsou vlákna v akci.

Spider delphi profiler

Všimněte si, že profiler zobrazuje jména vláken (jedná se o demo z instalace Delphi - thrdemo), a zároveň je evidentní, že nejrychlejší byl TQuickSort což je velmi přehledně vidět z diagramu.

Více...

Datum: 2015-11-13 17:34:00 Tagy: profiler, optimalizace, vlakna

Optimalizace Praxe

SapMM - Efektivní Memory Manager pro multithreaded aplikace

FastMM4 je geniální. V podstatě ve většině instancí je nepřekonatelný - a že se o to stále někdo pokouší. Ale v případech brutálních vícevláknových (hodně vláken), paměťově intenzivních programů je možné, že FastMM přestane dobře škálovat díky tomu, že své interní struktury chrání spinlocky.

Více...

Datum: 2015-09-05 00:27:00 Tagy: FastMM, optimalizace, Threading

Optimalizace Praxe

Nový opensource JSON parser - JsonDataObjects

Jistě znáte jméno Andreas Hausladen - člověk který stojí za IDEFixPack (mimochodem zrovna vyšla nová verze 5.8) , v půlce jednotek z JCL najdete jeho jméno atd.

Několikrát jsem zde jeho dílo velmi obdivoval a to platí stále. Tak on částečně z nudy napsal nový JSON parser, dostupný na github a nepřekvapivě všem ostatním natrhl

Více...

Datum: 2015-02-19 21:53:00 Tagy: super, IDE, JSON, optimalizace

Komponenty Novinky Optimalizace

Výsledky 2. soutěže

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

Datum: 2011-02-28 20:29:00 Tagy: optimalizace

Optimalizace

Znovu inline optimalizace

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:

program InlineTest;
{$APPTYPE CONSOLE}
{$O+}
uses
  SysUtils;

var
  s : string;
begin
  s:= 'Test';
  writeln(s);
  writeln(Length(s));
end.

Více...

Datum: 2010-09-24 23:12:00 Tagy: kompilátor, optimalizace, RTL

Optimalizace

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

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

Optimalizace

Vložené procedury a metody

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

Datum: 2010-05-27 22:01:00 Tagy: optimalizace, kompilátor, Object Pascal, začátečníci

Optimalizace Začátečníci

Synopse

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

Datum: 2010-04-12 22:42:00 Tagy: komponenty, open source, grafika

Komponenty Optimalizace

Delphi optimalizace

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

Datum: 2010-02-09 23:46:00 Tagy: kompilátor, delphi

Optimalizace

STRINGCHECKS problem a unicode Delphi

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

Datum: 2010-02-03 23:32:00 Tagy: Delphi 2009, kompilátor

Optimalizace

Optimalizovaná RTL pro Delphi 7

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.

Více...

Datum: 2010-01-08 22:58:00 Tagy: Delphi 7, RTL, Delphi 2007,

Optimalizace