Řešení problémů Out of memory v IDE

vložil Radek Červinka 19. února 2015 00:05

Pokud máte poněkud větší projekt v Delphi (myslím tím něco v řádu jednotek milionu řádku kódu aka MLOC), můžete se v posledních verzích Delphi setkat s problémem Out of memory v IDE. Problém je popsán na support.embarcadero.com/article/44279, kde se popisují příčiny a možné řešení.

Ve zkratce tvrdí, že se jedná o zvětšení komplexnosti IDE atd. (to je jejich názor). Řešením by bylo nastavení IMAGE_FILE_LARGE_ADDRESS_AWARE jak jsem popisoval nedávno, což by krásně fungovalo kdyby celé IDE bylo napsané v Delphi. Což bohužel není pravda, protože kromě převážně Delphi se do toho plete .NET, J# a další z historických důvodů použité technologie. V uvedeném papíru je řečeno, že se na povolení toho flagu pracuje vší silou (mezistav) a že cílový stav je 64bit IDE.

Z mé zkušenosti největší problémy dělají části psané v .NET (refaktoring, error insight) a hodně pomůže se jich zbavit (jak je tam popsané):

  • zakázat v Options
  • spouštět bds.exe -noparser
  • smazat Borland.Studio.Delphi.dll, Borland.Studio.Refactoring.dll, a refactoride210.bpl

V posledním případě bude sice IDE při startu zobrazovat messagebox, ale to je vše, jen přijdete o refaktoring.

No a v neposlední řadě použijte IDEFixPack.


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

Tagy: , ,

Podpora

Komentáře

25.2.2015 10:17:22 #

bohdan

Mám ve skupině projektu asi 20 projektů, které jsou spojeny jedním bpl. Vždycky při zkompilování a potom přechod na druhý projekt to sebralo pamět a nikdy už se pamět nevrátila.Když jsem se vrátil zpět na původní projekt tak si bds vzalo při zkompilování další pamět. Myslel jsem, že to dělá CnPack nebo GExperts, ale vyzkoušel jsem návod od Radka a najednou se delphi chovají plynuleji a pamět už to nebere podstatně méně.
Díky Radku za tento článek. Dost mi ušetřil moje nervy, když mi to aspoň 1x za ten napsalo, že je nedostatek paměti při kompilaci a musel jsem restartovat delphi.


Uvedené úpravy jsem zkoušel na Delphi XE6.
Jsem tedy dost zvědavý, jak se to zlepší v XE8, když na tom pracují.
Refaktoring mi nevadí, že nefunguje, ještě jsem se to nestihl pořádně naučit používat a error insight jsem vypnul hned po prvním použití, protože to neskutečně zdržovalo i když by se mi to asi líbilo.

bohdan

25.2.2015 11:20:43 #

radekc

Jsem rád že to bylo k něčemu, přemýšlel jsem zda to vůbec uveřejnit. Ještě mám v záloze jeden podobný trik.

radekc

26.2.2015 0:46:08 #

bohdan

Ta pamět se zlepšila až po vyhozeni těch dll.Zkoušel jsem nejdřív spustit delphi přes příkazovou řádku  bds.exe -noparser, ale nepozoroval jsem žádné změny.
Nyní už mám delphi 2 dny spuštěné a žádný výpadek na nedostatek paměti. I ve správci úloh je vidět, že se přechodem z jednoho projektu do druhého nezvětšuje pamět.

Takovéhle triky jsou vždycky zajímavé.

bohdan

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