[Alg] Acceptabel geheugengebruik

Pagina: 1
Acties:

  • Peter
  • Registratie: Januari 2005
  • Laatst online: 17:43
Sinds kort ben ik bezig met het leren van VB.Net, en ik stuit op een probleem. De meeste programma's die Visual Studio 2005 voor mij "published" gebruiken rond de 30 MB geheugen, dit is in mijn ogen vrij veel. Nadat de applicatie enige tijd staat te idlen zakt dit tot 19,996KB.

Wat doet de applicatie?
Iedere 5 minuten (via een timer) wordt een request naar een server gestuurd om te checken op zogenaamde "updates". Zijn deze er? Dan wordt er een msn like popup weergegeven waarop je kan klikken om een pagina in je browser te openen. Verder een settings paginatje via een tray icon. Een soort "whatpulse" qua programma dus (ondanks dat de werking veeel ander ligt), maar dan met tien keer zoveel geheugen gebruik.

De popup zelf zorgt dat het geheugengebruik wordt verhoogd met 2 MB, dit zakt later weer weg. Ik gebruik verder de libraries;

Imports System
Imports System.IO
Imports System.Net
Imports System.ComponentModel
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Resources

De .exe zelf is amper 125 KB. Ik ben bereid om de sourcecode/de exe op te sturen, maar post het liever niet in dit topic (gezien het nóg een semi-origineel idee is)

Mijn vraag is dus, zal deze 30 MB klachten opleveren bij de gebruiker? De CPU wordt alleen gebruikt indien er een popup weergegeven wordt, en dan "slechts" zo'n 15% op een pentium 3.

  • rrrandy
  • Registratie: Juli 2005
  • Laatst online: 25-01 15:24
Is het niet gewoon de virtual machine van .NET die dit geheugen inneemt?

Installeer de processexplorer van sysinternals eens, die kan je een stuk meer vertellen dan de taskmanager van Windows zelf.

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 16-04 11:36

pjvandesande

GC.Collect(head);

Er zijn al een hoop topic's over geweest, minimalizeer je app is en hij neemt bijna niets meer in beslag. En verder zal .NET geheugen blijven snoepen totdat er ergens anders geheugen nodig is of er geheugen te kort optreed.

Verder is 30MB niet veel als je kijkt naar de huidige PC's. 30mb voor 1 .NET instantie en 2 .NET instanties leveren nog geen 31mb op, dus dit loopt niet met 30mb per instantie op.

  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

Die 30 MB is de overhead die je krijgt als je een platform als .NET of Java gebruikt.
Op zich is dit helemaal geen probleem, zolang de gebruiker maar genoeg geheugen beschikbaar heeft. Je kan eventueel met Perfmon nog kijken of je applicatie het echt te bont maakt, maar over 30 MB zou ik me nog geen zorgen maken.

edit: moet sneller tikken

[ Voor 5% gewijzigd door zwippie op 05-12-2005 15:16 ]

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


  • Peter
  • Registratie: Januari 2005
  • Laatst online: 17:43
Er zijn al een hoop topic's over geweest, minimalizeer je app is en hij neemt bijna niets meer in beslag.
Er valt weinig te minimaliseren gezien ik het scherm na de load hide met een event. Misschien toch eens minimaliseren proberen. Bedankt alvast voor de reacties, ik zie het even aan :)