Avatar billede smith1 Nybegynder
13. januar 2006 - 16:13 Der er 9 kommentarer

Program og memory

Hey,

Jeg har et spørgsmål: Hvordan kan jeg få mit prrogram til at bruge mindre RAM hukommelse på min PC? Programmet bruger 5-6MB efter jeg har startet det, men hvis jeg lige minimere og gendaner programmet så bruger det kun 1-2MB!?! Hvordan kan jeg gøre så det bruger 1-2MB fra starten uden at jeg først skal minimere det?
Avatar billede stone Forsker
13. januar 2006 - 17:04 #1
nu ved vi jo ikke hvilke resourcer du bruger i dit program, og hvad det gør men har du free dine forskellige resourcer? det kan være billede,ini osv....
Avatar billede stone Forsker
13. januar 2006 - 17:10 #2
her lidt info om delphi's problem med at free memory

http://www.delphibasics.co.uk/Article.asp?Name=Memory
Avatar billede kroning Nybegynder
13. januar 2006 - 17:11 #3
Det tror jeg ikke har noget med Delphi at gøre da alle andre programmer også opfører sig sådan f.eks. fylder Outlook Express 12MB på min putter når jeg starter det men efter en minimere og gendan fylder det kun 3MB ifølge joblisten.
Avatar billede stone Forsker
13. januar 2006 - 17:16 #4
aaahhhh. kroning den teori passer ik helt, har selv optimeret et program fordi det brugte for mange resourcer, fordi jeg glemte at frigive hukommenlsen på de ting der blev created at runtime...

Men ellers har du ret i din påstand. Det er absolut værd lige at undersøge sin kode for memory leeks....
Avatar billede kroning Nybegynder
13. januar 2006 - 17:33 #5
jowjow, men jeg tror ikke at smith1´s problem er memory leeks, det han skriver er jo det samme som man oplever med andre programmer som f.eks OE og MS word.
Avatar billede dkn Nybegynder
13. januar 2006 - 17:41 #6
Hvis du vil "snyde" windows ang. ram så prøv dette i OnCreate
application.minimize;
application.restore;
Avatar billede smith1 Nybegynder
13. januar 2006 - 19:50 #7
Jeg bruger INI og TStringList, men jeg free'er TStringList med "TStringList.Free" og ikke med FreeAndNil(...) og INI free'er jeg også(INI.Free).

Hvis det var noget i min kode så ville den da stadig bruge sammen mængde RAM når jeg minimere eller mere?

Hvis jeg starter et nyt program: File -> New -> Application
Uden noget kode! så bruger programmet ~2.112 KB hvis jeg minimere det så bruger det 376 KB. Der er jo ikke noget kode at free :) ?!
Avatar billede dkn Nybegynder
13. januar 2006 - 21:36 #8
Nu kan du jo ikke bruge Joblisten til ret meget. Men hvis du gerne vil have den til at vise mindre, så gør som jeg skriver...
Avatar billede smith1 Nybegynder
15. januar 2006 - 12:35 #9
@dkn det virker, men synes ikke det er en særlig prof løsning..

Skal jeg også free denne slags kode?

menu := TMenuitem.Create(Form1.menu1);
menu.Caption := 'Menu !';
menu.RadioItem := true;
Form1.menu1.Add(Menu);
FreeAndNil(Menu); // <- Den skal også free's ik?

hey laver du ikke et svar igen, da jeg afviste dit første.. er det okay jeg hvis jeg også giver stone point for linket?.... det var ret nyttige
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester