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?
Už je to nějakou dobu, co jsem psal o FastMM4 naposledy a mezitím se něco změnilo. Vývoj FastMM4 byl nahrazen za FastMM5 s možnou komerční licencí a objevil se fork FastMM4-AVX. Fork mají na svědomí autoři známého emailového klienta Bat!, což není špatná vizitka. Více...
Datum: 2020-08-13 15:21:00 Tagy: FastMM
Myslím, že normální programátor používající DLL v Delphi obecně chápe, že předávat string jako parametr do DLL není možné bez použití berličky typu SimpleShareMem, která propojí memory manager v hlavní aplikaci s memory managerem v DLL. Což ovšem znemožňuje použití DLL z jiných jazyků a proto se musíme snížit na úroveň předávání přes PChar nebo PWideChar.
Před nedávnem Primoz Gabrijelcic přidal do nejnovější verze FastMM další option, který by měl vylepšit chování FastMM při mnoha vláknech. Od té doby se ozvalo několik lidí, že to s úspěchem používají na velmi zatížených serverech (např. Eric Grange na beginend.net se 180 vlákny). Původní oznámení je na googleplus - velmi zajímavé.
Pozadí: při uvolňování, resp. alokaci používá FastMM zámek, kterým chrání své struktury. Čím více je vláken, tím větší je šance, že na sebe narazí a budou soupeřit (resp. čekat na uvolnění). Primoz přišel s myšlenkou, že nejméně při uvolňování pokud se nepodaří uvolnění k vůli zámku, tak se takový blok odloží a zkusí se uvolnit při dalším volání, nebo ho uvolní nové čistící vláknou na pozadí.
Datum: 2016-05-29 02:39:00 Tagy: FastMM
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.
Datum: 2015-09-05 00:27:00 Tagy: FastMM, optimalizace, Threading
Znáte ten pocit, kdy Vás napadne podle Vás skvělá myšlenka, tu začnete implementovat a přijdete na to, že to v praxi nebude úplně přesně fungovat jak si člověk vymyslel, ale je Vám líto to vyhodit, protože jsou v tom určité myšlenky, které se někomu mohou hodit? Tak to je případ dnešního kódu.
Jednoho krásného dne Váš program zjistí, že trpí nedostatkem paměti. Přirozeným krokem je přechod na 64bit aplikace, ale existuje i jiná možnost. U EXE (resp. PE souboru) se dá specifikovat flag IMAGE_FILE_LARGE_ADDRESS_AWARE. Tento flag byl původně určen pro speciální mód 32bit Windows, kdy místo normálních cca 2GB paměti pro 32bit proces nabízel celých úžasných 3GB volné paměti. Praktická využitelnost tedy nic moc, protože tento mód Windows se moc nepoužíval.
Situace se obrátila s příchodem 64bit Windows (jen aby nedošlo k nedorozumnění - dávejte pozor kdy mluvím o 32bit procesu, kdy o 32bit Windows a kdy o 64bit Windows).
Datum: 2014-09-19 22:09:00 Tagy: delphi, optimalizace, praxe, windows, FastMM
Do nového roku s další hrstí odkazů, poznámek a vůbec věcí co mne zaujalo.
Datum: 2014-01-08 22:22:00 Tagy: vykriky, FastMM, Android, iOS, komponenty, FireDAC, nastroje, profiler
Další dávka věcí co mne zaujalo z oblasti Delphi nebo IT.
Fast Report uvedl Fast Report FMX - multiplatformní report generator pro Apple Mac OS X a Microsoft Windows na bázi FireMonkey, kompatibilní s Embarcadero RAD Studio XE2/XE3.
Datum: 2012-10-19 23:54:00 Tagy: vykriky, FastReport, FastMM, FireMonkey
Pravidelní čtenáři snad chápou, že se tématu ladění věnuji dost podrobně.
Schopnost najít chybu je podle mne to, co odlišuje vynikajícího programátora od zbytku. Postupně jsem se snažil ukazovat různé nástroje a finty jak si práci v této oblasti zjednodušit (počínaje fulldebug mode u FastMM, přes seriál o debuggeru atd).
Dnes ukáži zajímavou možnost a tou je SafeMM.
Datum: 2012-07-04 15:01:00 Tagy: ladeni, FastMM, praxe
Kdysi jsem popisoval jakým způsobem FastMM využívá paměť a jak optimalizuje její používání. Pokud chcete vědět opravdu kolik Váš program používá paměti můžete použít Process Explorer (ale tam je to velmi zkreslené cache memory manageru, protože ten hned paměť nevrací systému, ale dá ji zase programu až si požádá) nebo využít kód, který dodal přímo autor FastMM a který využívá přímo reálných informací.
Datum: 2012-06-22 21:37:00 Tagy: FastMM
FastMM nyní nově podporuje OSX. Kukněte do SVN, od revize 59. Podle testerů je výkon výrazně lepší, mluví o 20 - 40%. A to je jen verze bez ASM. Více o FastMM viz tag FastMM.
Více...
Kupodivu mne stále ještě něco napadá, takže opět pár dalších poznámek. Dnes to bude zmínka o 64bit assembleru, FireMonkey, memory manageru, linkování COFF v Delphi a CnWizards. A na závěr kousek elegantního kódu.
Datum: 2011-10-17 21:36:00 Tagy: FireMonkey, DelphiXE2, FastMM, nastroje
I pokud je člověk začátečníkem, v Delphi narazí na objekty a třídy v podstatě hned - např. i formulář je objekt.
Jen pro úplnost: objekt je instancí třídy, ale to modří již vědí. Vytvoření objektu je provedeno voláním konstruktoru patřičné třídy. Následně objekt existuje v paměti dokud programátor neuzná za vhodné ho uvolnit (zjednodušeně).
Datum: 2011-05-13 20:39:00 Tagy: delphi, RTL, Object Pascal, FastMM
Snad už naposledy malá poznámka ohledně využití FastMM4 při ladění. Tentokráte jak na detekci zápisu mimo alokovanou paměť. Více...
Každý program se dá zrychlit. Nejinak je tomu i u IDE Delphi libovolné verze. V podstatě znám tři možnosti - v závislosti na verzi Delphi. Více...
Datum: 2010-12-05 22:09:00 Tagy: FastMM, IDE, nastroje, rozšíření
Minule jsem ukázal jak se DLL dělá, na co je atd. a dnes zkusíme něco praktického. Zkusíme implementovat do naší aplikace pluginy, tj. rozšiřující moduly.
Náš program zjistí dostupné pluginy, zobrazí informace, co který plugin dělá a po výběru pluginu uživatelem v něm zavolá modální dialog. Více...
Datum: 2010-07-10 23:13:00 Tagy: DLL, FastMM, začátečníci
Pravidelní čtenáři již vědí co je FastMM4, pro ty dva zbývající: nejlepší správce paměti, defaultní správce paměti pro Delphi 2005+, detektor chyb v uvolňování a v neposlední řadě náhrada ShareMem alias BorlndMM.dll, což je ve starších verzích Delphi originální možnost pro předávání dat do DLL - což ale předbíháme. Více...
O FastMM4 jsem již psal a zmínil jsem se také, že pomáhá detekovat problémy s uvolňováním paměti. Více...
Datum: 2009-12-15 19:30:00 Tagy: RTL, delphi, ladeni, FastMM
Pro jeden svůj velký projekt používám stále Delphi 5. Nedávno jsem i u něj začal používat FastMM - tedy standardní správce paměti z nových Delphi. Za FastMM dostal jeho autor ocenění Delphi spirit za rok 2005. Za co toto významné ocenění udělované autory Delphi dostal? Více...
Datum: 2009-11-05 21:40:00 Tagy: komponenty, open source, delphi, FastMM,