26. maj 2006 - 14:34
Der er
16 kommentarer og 1 løsning
Mit program suger ram
Hej... Når jeg kører mit program fylder det 86 MB i rammne... hvor de MB skulle komme fra ved jeg ikke helt, men det er et rimeligt simpelt program... Jeg har et component som jeg selv har lavet hvor jeg tegner på det... har på fornemmelsen at det er der den trækker... Men til mit spørgsmål: Er der et sted i Visual Studio .Net 2005 hvor man kan se hvad der ligger i ramne som er givet til mit program?
Annonceindlæg fra Computerworld
Så er problemet løst.. men damn hvor latterligt... Hvis man siger new ArrayList(10000) så reservere den fandme de 10000 :/
jada.. det er jo det du ber den om..! men hvis du bare efterlader den blankt.. så sørger den selv for at holde styr på hvor mange du skal bruge..!
altså private ArrayList ArrTest = new Arraylist();
et eller andet stemmer ikke rigtigt her en ArrayList gemmer kun referencer til objekter 4 bytes per reference på 32 bit styresystem new ArrayList(10000) vil derfor kun allokere 40 KB så jeg forstår det ikke !
var mere end 10000, bare princippet i det... men ville bare have den til at sige fejl hvis jeg kom over det... Hvis jeg skulle bruge det andet brugte jeg et almindelig array
det var ushort.MaxValue * byte.MaxValue så passer det...
ah ja - 16 millioner x 4 byte = 80 MB
private arraylist al = new arraylist; public void lala(); if (al.count <= 10000) al.add("test"); else // FejlKode
helt dum er jeg heller ikke :P... troede bare jeg kunne gøre det, og så sparer de 3 linier...
hvis du skulle gøre noget skulle du nok lave en klasse som arver fra ArrayList (eller måske BaseCollection) og checker i Add
ushort.MaxValue * byte.MaxValue * 4 = 2^26 = 64 MB
hehe.. ja.. sparer 3 linjer.. suge 80 Megs :) ej.. held og lykke med det :)
ahrrggg.... man går da self. altid efter mindre linier ved samme hastighed, og jeg troede jo at den ikke allokerede...
ups - jeg fik vist regmet lidt forkert (der er ikke moms på objekter endnu !)
arne_v >> Hvad med Afgifter måske?... Eller er der virkelig noget den danske regering har overset ?? :P (Nu vi lige var i det sjove hjørne :D)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.