Memory Test

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

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

    Hallo ihr lieben,

    mich interessiert wie genau ich vorgehen muss um Ram zu testen. (Threads, MB, ect)
    Und wie stelle ich mich vb.net fest wann errors im Test auftauchen? Wie kann ich da vor gehen?

    Theorie: Also man schreibt eine Reihe von Testmustern in jede Speicheradresse, liest diese wieder aus und vergleicht sie. Nur wenn das ausgelesene Muster mit dem ursprünglich geschriebenen übereinstimmt, ist die betreffende Speicheradresse fehlerfrei.

    Also:
    1. Alle adressen auflisten
    2. Jede Adresse einzeln Schreiben, Lesen, vergleichen

    Soweit also so gut, nur wo fange ich an!?

    Wie kann ich alle Speicheradressen auflisten?

    lg
    Liebe Grüße,
    C.O.D.E

    Testautomatisierung (TA):

    5%
    Du findest meinen Beitrag Hilfreich? :thumbup: Dann drück auf Hilfreich!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „C.O.D.E“ ()

    @C.O.D.E Warum willst Du das selbst und in VB.NET scheiben?
    Bist Du der Meinung, dass der vorhandene Speichertest nicht reicht oder dass Deiner besser und / oder schneller ist?
    pcwelt.de/tipps/Windows-Speich…n-reparieren-9778686.html
    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 Doch doch, ich benutze ja selbst Privat memtest86. Mir geht es nur um die Verständnis und das "selbst machen".. :)Ich habe noch nie etwas in diese Richtung gemacht und empfinde das als wissenslücke! :)
    Liebe Grüße,
    C.O.D.E

    Testautomatisierung (TA):

    5%
    Du findest meinen Beitrag Hilfreich? :thumbup: Dann drück auf Hilfreich!
    Speicher testen kannst du nur, wenn er frei ist.
    Sobald Teile des Speichers vom Betriebssystem belegt sind, hast du keine Lese- und Schreibzugriffe mehr drauf.
    Da sorgt (glücklicherweise) das Memory Management des Betriebssystems dafür.
    Auch MemTest kann nur den unbenutzten Speicher testen.

    Deswegen klinken sich die normalen Testprogramme (auch das von Windows) vor der Bootphase ein und testen dann das komplette Memory, auch den Teil, der später vom Betriebssystem alloziert wird.
    Da ein VB.Net-Programm ein laufendes Windows benötigt, ist es unmöglich, so ein Programm in VB.Net zu schreiben.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    @C.O.D.E Du musst ihn alloziieren.
    Erstell (mindestens) ein Byte- oder Long-Array maximaler Größe.
    Dann kannst Du per Index darauf zugreifen.
    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 - Das heißt, in diesem Array hat jeder index in dem ganzen Array seinen eigenen Speicherplatz im Ram? Nur so rein vom Verständnis her.

    VB.NET-Quellcode

    1. Dim handle As IntPtr = Marshal.AllocHGlobal(size)
    2. Marshal.FreeHGlobal(handle)


    Dies hätte ich dazu im Internet gefunden...

    Dann müsste ich ja noch gegenrechnen Maximaler_Speicher - Benutzer_Speicher = Benutzbarer_Speicher..

    Ich denke ich habe gerade den richtigen Weg gefunden, Stichwort "pointer scan" :)
    Liebe Grüße,
    C.O.D.E

    Testautomatisierung (TA):

    5%
    Du findest meinen Beitrag Hilfreich? :thumbup: Dann drück auf Hilfreich!
    @C.O.D.E Ich denke, da musst Du ein wenig mit size spielen, bis eine OutOfMemoryException kommt.
    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!