Windows Belegter Speicher



  • Servus Community,

    ich hoffe dieses Thema passt hier rein, da es nicht wirklich was mit Programmierung zu tuen hat.
    Ich habe ein Programm geschrieben, dass in einem angegebenen Pfad den Speicher aller Dateien zusammenzählt. Windows zeigt mir unter Eigenschaften des lokalen Datenträgers C folgendes an:

    Belegter Speicher: 74.354.913.280 Bytes

    Dann habe ich mein Programm durchlaufen lassen, welche ich extra auch nur mit Bytes hab rechnen lassen, um Rundungsfehler und sonstiges zu vermeiden:

    Belegter Speicher: 75.449.381.855 Bytes

    Meine Frage ist nun, wo mein Programm 1GB mehr Speicher liest, bzw. Windows mir versteckt. Obwohl mein Programm auf manche Ordner sogar kein Zugriffsrecht hat, habe ich mehr als Windows mir anzeigt.
    Das Programm habe ich auch zuvor auf kleine Ordner getestet, um zu schauen, ob es funktioniert.

    Mit freundlichen Grüßen,
    Freaky


  • Mod

    Erster Gedanke: Hast du auch an den Unterschied zwischen Dateigröße und dem von ihr belegten Speicher geachtet?



  • Wie genau meinst du das? Ich habe auch schon daran gedacht, dass z.B. Ordner sogesehen auch Speicher wegnehmen, ich diese aber nicht mitrechne. Ich greife auf die Dateigröße zu und addiere sie der Summe hinzu. Gerade deswegen frage ich mich, wenn ich wirklich nur die Dateigrößen nehme, wie ich 1GB mehr in meinem Programm habe, als Windows anzeigt. Ich rechne als mit dem, was mir Windows anzeigt, wenn ich z.B. die Maus über eine Datei halte und dort dann steht "Größe: ...".



  • Windows hat einige symbolische Verknüpfungen. Die wirst du wohl doppelt zählen



  • FreakY<3Cpp schrieb:

    Wie genau meinst du das?

    Naja, wenn du ein File anlegst, dass nur 1 Byte grosz ist, wirst du (modulo tail packing) trotzdem ein vielfaches an Platz im Dateisystem verbrauchen, weil du eine gewisse Clustergroesze hast. Unter NTFS heutzutage wohl meistens 4 KiB.

    Die Dateigroesze sagt dir also nicht unbedingt viel darueber, wieviel Platz wirklich belegt wird.



  • Ich verstehe. Kennt jemand vielleicht ein Verfahren oder System, womit man eine ziemlich genaue Angabe bekommt, oder wie man sowas am besten zusammenrechnen könnte?



  • Ich glaube bei den Sysinternals war ein man: du(1)-Verschnitt dabei.



  • Im Alternativen Datenstrom unter NTFS (Alternate data streams (ADS)) gespeicherte Daten,werden in den Eigenschaften im Windows nicht angezeigt.(zumindest bis WinXP war es so...).
    Sind aber warscheinlich aber nur wenige KB. Diese Methode wird nicht von vielen Programmen genutzt. Firefox nutzt sie z.B.


Anmelden zum Antworten