Programm nutzt zu viel Arbeitsspeicher

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Warfley.

    Programm nutzt zu viel Arbeitsspeicher

    Hey,

    unzwar hab ich folgendes Problem:

    meine Programm hat ein automatisierten WebBrowser der sich refreshed und nach sachen sucht und damit dann was anstellt..

    so, das Problem aber ist, dass nach einiger Zeit die Arbeitsspeicher-Verwendung steigt und steigt.
    Zuerst sind es 32 MB und nach 1-2 h sind es schon über 1GB.

    Meine frage wäre somit.. Gibt es da eine möglichkeit diese zu veringern?

    mfg :P
    Debugge Dein Programm,
    analysiere, was es macht,
    finde die Speicherfresser,
    räume auf,
    schmeiß alte Objekte raus mit Dispose()
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    der speicherfresse ist definitiv der webbrowser control.

    mit webbrowser.dispose() komm ich auch nicht weit, da direkt darauf ein error folgt.

    ich dachte ich wäre mit dispose() auf der falschen seite.. naja ich schau mal vllt muss ich den webbrowser vor dem dispose() nur stoppen.

    ich versuch mein glück weiter.

    danke!

    @Warfley : nein, keine endlosschelife die mir objekte initialisiert aber eine die den WebBrowser ständig aktualisiert.
    in einem memory stream schreibe ich nichts.

    Warfley schrieb:

    also ich weiß nicht was genau der webbrowser macht aber wie wärs mit:

    VB.NET-Quellcode

    1. Sub Aktualisiere
    2. Wb.Dispose()
    3. Wb=New Webbrowser
    4. Wb.position
    5. ... weitere einstellungen
    6. Wb.Navigate
    7. ENd Sub

    Danke, scheint zu klappen. Aber nachdem ich dieses ausführe sehe ich keinen WebBrowser mehr obwohl ich ihn dort positioniert habe wo er auch war.

    :

    VB.NET-Quellcode

    1. WB2.Dispose()
    2. Me.WB2 = New System.Windows.Forms.WebBrowser()
    3. Me.WB2.Location = New System.Drawing.Point(684, 116)
    4. Me.WB2.MinimumSize = New System.Drawing.Size(20, 20)
    5. Me.WB2.Name = "WB2"
    6. Me.WB2.ScriptErrorsSuppressed = True
    7. Me.WB2.Size = New System.Drawing.Size(331, 173)
    8. Me.WB2.TabIndex = 2