VB 4.5]]Arbeitsspeicher reservieren

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    VB 4.5]]Arbeitsspeicher reservieren

    Hallo, ich wollte fragen ob man in VBnet RAM reservieren kann, also nicht große variablen machen sondern eben ungefähr so:

    Hallo Windows, hier ist xy.exe Ich wollte dir sagen, das du bitte 2GB RAM für mich freihältst und nicht den anderen programm gibst, danke.

    Für hilfe und ratschläge wäre ich dankbar.

    Luca Grüßt.
    こんにちわ
    Achte beim stellen von Fragen auf eine genaue Fragestellung, mir passiert das selbst häufig, andere können dir dann nicht so gut helfen.
    das würde in meinen augen keinen sinn machen...wenn die anwendung ram benötigt bekommt sie diesen automatisch zugewiesen...sollte dein ram nicht reichen bekommst du so oder so probleme
    Zumal durch vorher sinnlos reservierten Speicher die anderen Programme ggf. nicht genug zur Verfügung haben könnten.

    Würdest du verraten wozu du das tun möchtest? :)
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Also wieso:
    Ich arbeite an einem Prgramm, das sog. "Sketche" (sowas wie Codedateien) ausführt, um das reibungslos zu machen müssen einige "Grundsketche" und "Bibliotheken" in den RAM geladen werden, da das dann gerne mal 1 GB beansprucht, würde ich es bevorzugen windows zu "warnen"

    Grüße
    こんにちわ
    Achte beim stellen von Fragen auf eine genaue Fragestellung, mir passiert das selbst häufig, andere können dir dann nicht so gut helfen.
    Jou.
    @_DarkForest Windows ist ein Multi-Task-Betriebssystem. Jedes Programm, das startet, bekommt seinen angeforderten Speicher.
    Wird eine gewisse Schwelle überschritten, wird Hauptspeicher auf die SwapDisk ausgelagert (sofern eingerichtet).
    Wird mehr Speicher angefordert als da ist, wird eine OutOfMemory-Exception ausgelöst.
    Wenn Du also in Deinem Programm viel Speicher brauchst, sollgtest Du es bei Zeiten starten und keine anderen speicherfressenden Programme dazuladen.
    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!

    RodFromGermany schrieb:

    speicherfressenden Programme dazuladen.


    Das verstehe ich leider nicht, meinst du ich soll die "Sketch-Bibliotheken" nicht dazuladen.

    Wenn ich die nicht dazulade würde mein "Parser" den C-Code nicht ausführen können.

    Gibt es denn keine möglichkeit nach RAM zu betteln?
    こんにちわ
    Achte beim stellen von Fragen auf eine genaue Fragestellung, mir passiert das selbst häufig, andere können dir dann nicht so gut helfen.
    Innerhalb der .NET Umgebung wird Speicher so zugewiesen, wie er benötigt wird. Wenn man weiß, dass man Viel Arbeitsspeicher brauch sollte man nicht die vorhanden Mechaniken umgehen, sondern mit ihnen Arbeiten.
    Sofern die Pagefile auf dem System nicht deaktiviert ist, hat dein Programm quasi "unendlich" Speicher. Und selbst wenn es deaktiviert ist, so bekommt der User irgendwann die Meldung, dass der RAM knapp ist, und doch bitte Anwendungen beenden möchte. Und wenn das nicht klappt, dann fliegt in deiner Anwendung eine Exception. Und diese MUSS fliegen.
    Und bitte versuch nicht mit GC.Collect() oder so den Speicher so klein wie möglich zu halten. In 99,9999999% aller Fälle ist der GC schlauer als du.

    U.u. braucht dein Programm auf Sysytem mit wenig Arbeitsspeicher bereits weniger RAM, da der GC wesentlich aggressiver aufräumt.
    Ok, schade...
    trotzdem danke!

    Ich werde mal sehen, dann muss ich die HDDRAM.dll wohl wieder ausgraben müssen.

    Grüße.
    こんにちわ
    Achte beim stellen von Fragen auf eine genaue Fragestellung, mir passiert das selbst häufig, andere können dir dann nicht so gut helfen.

    _DarkForest schrieb:

    HDDRAM.dll wohl wieder ausgraben müssen.
    Und die macht was?

    ​Nebenbei solltest du möglichen Usern einfach sagen, dass dein Programm 1-2GB Arbeitsspeicher belegen kann. Dann brauchst du nur noch sicherzustellen, das, sollte die Exception fliegen, die Anwendung in einem Zustand ist, der keine Daten beschädigt.

    _DarkForest schrieb:

    meinst du ich soll die "Sketch-Bibliotheken" nicht dazuladen.
    Ich weiß nichts von "Sketch-Bibliotheken".
    Ich starte z.B. eine Bildverarbeitung, die sehr viele große Bilder lädt. Da ist iwann Schluss.
    Also lade keine solche Bildverarbeitung.
    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!