Geheugen gebruiken verminderen

Status
Niet open voor verdere reacties.

SuperABC

Gebruiker
Lid geworden
16 jul 2009
Berichten
327
Hey,

Wat kan je allemaal doen om het geheugen gebruik van je programma te verminderen? Nog iets wat ik me af vroeg is: als je een form afsluit of deze dan ook uit het geheugen wordt verwijdert, want als je bij takbeheer kijkt voor je het form start heb je bijvoorbeeld 20MB daarna 25 en als die gesloten is dus nog steeds 25MB... Heeft iemand ideën om het geheugen gebruik te verminderen? Wat moet je daarvoor doen???:thumb:
 
Je variabelen vaste lengtes geven, standaard zo klein mogelijke variabelen gebruiken... Tenminste, dat 'hielp' in de tijd van VB6 soms nog wel eens. Ik weet niet hoe het zit met de .NET versies, hadden die niet automatische afvalverwerking?
 
Code:
Dim mijnGeval as string
maakt een variabele 'mijnGeval' van onbepaalde lengte; je kan zeggen:
Code:
mijnGeval = "kort"
maar ook
Code:
mijnGeval = "erg lange string zie je deze is een stuk langer dan die andere string... En daar moet VB rekening mee houden."
Vaste waardes doe je door een '* int' te gebruiken (in vb6 iig):
Code:
dim mijnGeval as string * 16
maakt een string van 16 karakters.
 
Ok, ik zal eens kijken of het lukt en of het veel uit maakt...
Kan het ook bij andere soorten viriabelen? Zoals integer dat je hem een maximale waarde geeft? e.d.
 
In VB.NET lukt dat niet...

Code:
Dim X As String * 50

Hij denkt dat je het wil vermenigvuldigen...
 
Laatst bewerkt:
Variabelen korter schrijven.
Bijv.
My.Settings.Weetikveelwatikhierhebstaanmaarikmaakermaar255karaktersvan
Kan je
My.setting.Weet van maken
Scheelt bij één keer niet zo veel, maar wanneer dit vaker voorkomt wel.

Zoveel mogelijk opdrachten bij elkaar plaatsen in plaats van enters en groene lijnen ertussen te laten.

In plaats van:
Dim ABC as String
ABC = Alfabet (ja dit is byteneuken, maar kan soms wat schelen wanneer er veel gedaan wordt)

Dim ABC = "Alfabet"

Bij database gebruikt de connectie afsluiten in plaats van na het ophalen van de data maar zo te laten.

Als je een ander form oproept waarbij je het vorige form niet meer nodig hebt of de dingen die erop staan niet meer nodig hebt die even verbergen. (Form1.hide)

Meer weet ik eigenlijk niet.
 
Laatst bewerkt:
Ok, maar denk dat wat vegras zei meer scheelt...
Hoe geef je in VB.NET een string een maximale lengte, dus in het geheugen wordt voor de string maar 50 chars gemaakt?
 
Nog meer gaat het hier om een kleine 200 int's... Die geen maximale waarde van 2.147.483.647 hoeven te hebben... 20.000 is genoeg... Is het een idee om het dan als volgt te doen:?

Code:
Dim X As Integer
For X = 0 To 20000
Next

Ik weet niet of hij er dan gelijk een loop van 20.000 stuks door haalt... Of doet die dat pas als je een 'Step' aangeeft? Dus:

Code:
Dim X As Integer
For X = 0 To 20000 Step +1
Next
 
Dim ABC = "Alfabet"
moet dit niet
Code:
Dim ABC [COLOR="Red"]as String[/COLOR] = "Alfabet"
zijn?



Wat bedoel je precies met je int / loop voorbeeld? Als je overgens getallen onder de 255 gebruikt kan je eens het datatype 'byte' checken:
Code:
dim geval as Byte = 142
 
Je hebt dit:

Code:
Dim X As Integer
For X = 0 To 20000
Next

Wordt er dan gelijk 20.000x een loop gemaakt? Of maakt die pas een loop als je X met 1 verhoogd? Nog anders: heeft het getal X in het voorbeeld nu een maximale waarde van 20.000?
 
Ehm, dit is 1x een loop waar 20000x doorheen wordt gelopen. De waarde wordt steeds 1 hoger. X zal dus dit zijn:
0
1
2
3

...

19997
19998
19999
:thumb:


[edit]weet niet of 20000 ook wordt meegenomen.[/edit]
 
Ok, is er niet een andere manier om variabelen een maximale waarde/lengte te geven?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan