Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Tipps & Tricks
Autor
Nachricht
tr4st
Überflieger
Überflieger

Anmeldedatum: 16.04.2008
Beiträge: 486

Memory Flush - Ramverbrauch deutlich senken!
Verfasst am: 15.06.2009, 17:53

Hab vorhin im Netz eine sehr interessante Klasse von Cory Smith gefunden:

Code:
Public Class MemoryManagement<br /><br />    Private Declare Function SetProcessWorkingSetSize Lib "kernel32.dll" ( _<br />      ByVal process As IntPtr, _<br />      ByVal minimumWorkingSetSize As Integer, _<br />      ByVal maximumWorkingSetSize As Integer) As Integer<br /><br />    Public Shared Sub FlushMemory()<br />        GC.Collect()<br />        GC.WaitForPendingFinalizers()<br />        If (Environment.OSVersion.Platform = PlatformID.Win32NT) Then<br />            SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1)<br />        End If<br />    End Sub<br /><br />End Class


Diese entlädt alles unnötige aus dem Ram, denn selbst ein Projekt mit nur einer leeren(!) Form braucht 15-16 MB Arbeitsspeicher. Das liegt aber nur daran, dass sich die .Net Anwendungen immer schonmal "vorsichtshalber" mehr reservieren als sie brauchen.

Aufgerufen wird das ganze durch

Code:
MemoryManagement.FlushMemory()


Aber Achtung: Den Code niemals aufrufen wenn euer Programm irgendwelche Berechnungen etc macht. Denn wenn man dabei eine GarbageCollection laufen lässt kann dies zu einer hohen Auslastung führen.

Ihr müsst euch also gut überlegen ob ihr einfach einen Timer nehmt der auch mal zu einen blöden Moment ausgelöst werden kann oder ob ihr genau definiert wann das Programm "ausmisten" soll.

Man kann ja z.b wenn es im Tray läuft einen Timer nehmen und wenn das Prog aktiv ist den Timer ausmachen.


Dieser Beitrag wurde von Bahamut verfasst!

_________________
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Tipps & Tricks

Tags: ram, flush, memory, reservieren, arbeitsspeicher, flushmemory

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Wie kann ich mich bei euch anmelden?? 796 20.05.2002, 00:28
Keine neuen Beiträge [Video] *.dll & *.ocx Installer 2433 06.03.2008, 20:19
Keine neuen Beiträge Eine kleine Frage an euch.. 906 30.09.2007, 08:57
Keine neuen Beiträge Dll injection/uninjection 1345 27.09.2007, 07:12
Keine neuen Beiträge DLL Injection 1020 18.07.2008, 14:58
 



[ Time: 0.1389s ][ Queries: 81 (0.0296s) ][ GZIP on - Debug on ]