Zitat:
Original geschrieben von BC_Holger
Hallo Yves,
sehr clevere Detektivarbeit - besten Dank dafuer!
Eine Frage: wie kannst du denn feststellen, wann ein bestimmtes Texturfile "geoeffnet" oder "geschlossen" wird? Mit Filemon kann man das doch nicht direkt erkennen, oder?
Ciao, Holger
|
Du nutzt ja glaube ich noch WIN98 wenn ich mich recht erinnere.
Also Filemon verhält sich unter Win98 und Win XP unterschiedlich.
Unter 98 ist alles etwas leichter zu deuten. Unter XP muss man sich etwas mehr Gedanken machen, dafür erhält man unter XP wesentlich tiefere Informationen.
Filemon ist schon ein tolles Tool.
Prinzipiell kann man alles Beobachten was mit Laufwerkszugriffen zu tun hat.
Man kann auch gezielt Filtern wenn man überflüssige uninteressante Sachen nicht sehen möchte. Das schön ist auch das ein Zeitprotokoll mitläuft.
Du siehst unter XP in der Regel auch was für Bytebereiche von Dateien gelesen werden. Wenn man genau die Bytestruktur von BGL Dateien bzw. Bitmaps kennt wie ich, dann sieht man auch sehr schön was gelesen wird. z.B ob es nur der Header ist weil der FS nur wissen will was ist das überhaupt für eine Datei usw.
Nachteil ist leider, das man nicht beurteilen kann was davon wirklich im Speicher hängen bleibt.
Z.B ob LC Texturen nun komplett im Speicher liegen oder ob der FS deshab Texturen ständig nachlädt weil er sie überhaupt nicht im Speicher hat.
Aber es gibt ein weiteres schönes Tool Processmon. Mit diesem kann man individuelle Speicherlast des FS messen.
Leider nützt das auch nicht inbedingt so viel.
Daher muss man sich hin und wieder Tricks einfallen lassen. So konnte ich zumindest bei meinem Desktop PC bei allen Reglern rechts und einer speziellen Testscenery wo ich die benötigte Texturlast innerhalb der Landclassfläche (bis zum vereinfachten Weltmodell berechnet hatte) anhand Filemon nachweisen, dass der FS zwar alle Texturen komplett von Festplatte ausgelesen hat, aber aufgrund der real viel niedrigen Speicherlast unmöglich komplett im Speicher haben konnte.
Mittels dieser speziellen Testscenery konnte ich auch noch einen Beweis dieser Geschichte bei mir erbringen.
Ich pausierte den FS. Entfernte den lokalne Texturordner von dem die Texturen geholt wurden und flog dann weiter. Siehe da der FS versuchte vergeblich die texturen zu laden, ab MIP Level 2 waren sie aber vorhanden.
Er lädt im Flug also im wesentlichen immer die Texturen ständig von Festplatte nach weil er MIP Level 0 und 1 benötigt.
Ich habe auch mal berechnet warum das so ist.
Bei einer Fotoscenery würde es nämlich überhaupt nicht funktionieren alle Texturen komplett in den Speicher zu laden wenn z.B einen PC mit 512 MB Ram hat. Selbst bei 1024Mb wird es ev. kritisch.
Würde der PC jetzt auf Festplatte auslagern also in den virtuellen Speicher schieben wäre das Unsinn, dann könnte er ja gleich die Daten von Festplatte holen.
Das muss sich wohl auch Microsoft so gedacht haben, deshalb dieses Verfahren.
Das hängt aber auch etwas von der Scenery ab. Ich muss das noch genauer testen. Aber das kostet alles immer soviel Zeit, die man natürlich nicht hat.
Wie gesagt mit Logik, Tools und Testscenerien kann man vieles nachweisen.
Schön wäre es wenn es ein Tool gäbe ähnlich Filemon welches uns wirklich sagen würde, der FS greift auf dieses Dateifragment der Datei X zurück die gerade im Speicher liegt.
So ein Tool welches so detailierte Informationen liefert kenne ich aber nicht.
Habe mir neulich mal einen Freeware RAMbooster heruntergeladen bin aber noch nicht zum testen gekommen. Wenn diese Tools den RAM wirklich optimiern, könnte es sein, dass sie ev. auch Informationen liefern.
Sollte aber jemand ein Tool kennen, was nicht nur die komplette Speicherlast anzeigt wie z.B Processmon sonder detailiertere Informationen liefert bitte hier bekannt geben.
In einer Zeitschrift habe ich zumindest etwas gefunden wie man auch die Grafikkartenspeicherlast ermitteln kann. Ist zwar umständlich aber ist ja auch schon mal was.