Erzwingen, dass Windows ausführbare Dateien zwischenspeichert, ohne sie auszuführen?

1370
Josh

Gibt es eine Möglichkeit, Windows zu zwingen, bestimmte EXE- / DLL-Binärdateien in seinen Prefetch- / Superfetch-Cache zu laden, als wären sie ausgeführt worden? Ich habe eine bestimmte Anwendung, die beim ersten Durchlauf ziemlich langsam lädt, aber wenn sie "warm" (kürzlich ausgeführt) ist, wird sie ziemlich schnell gestartet. Ich möchte den Cache frühzeitig im Hintergrund starten, bevor die Anwendung benötigt wird. Da es jedoch eine Benutzeroberfläche zeigt, suche ich nach einer Möglichkeit, dies leise zu tun. Es ist also nicht ideal, die Anwendung einfach zu starten.

Vielen Dank im Voraus.


Nach Davids Vorschlag in den Kommentaren aufgefordert, schrieb ich ein PowerShell-Skript, um die Dateien zu speichern, bis zum Ende zu suchen und sie zu schließen. Ich habe noch keine kontrollierten Tests durchgeführt, und es könnte nur meine Fantasie sein, aber Sublime Text (die fragliche Anwendung) schien dieses Mal viel schneller zu laden, und ich habe es seit mehreren Stunden nicht verwendet.

2
Schalten Sie Ihre Maschine einfach nie aus. martineau vor 11 Jahren 1
Ja, Prefetch / Superfetch funktioniert nicht so, aber danke. Josh vor 11 Jahren 0
Übrigens, niemals ausschalten, bedeutet nicht, dass Sie ihn nicht in den Ruhezustand / Ruhezustand oder Ruhezustand versetzen können. martineau vor 11 Jahren 0
Keeping the machine on doesn't keep the binaries warm in cache. If they aren't used, they'll quickly be purged from memory as other applications are launched. I'll probably wind up having to go with a ramdisk & copy on boot. Bleh. Josh vor 11 Jahren 0
Sie schreiben ein Programm, das diese Dateien öffnet, aus dem Speicher abbildet und regelmäßig aus den Zuordnungen liest. David Schwartz vor 11 Jahren 1
Danke für den Vorschlag, David. Ich werde das versuchen. Ist es wichtig, wenn ich Lesezugriff gegen Lesen / Ausführen benutze (obwohl ich tatsächlich nichts ausführt.) Josh vor 11 Jahren 0

1 Antwort auf die Frage

0
Scott

Überprüfen Sie die Dokumentation Ihres Programms (oder experimentieren Sie einfach damit; z. B. von einer Eingabeaufforderung aus). Sehen Sie nach, ob Sie etwas in die Befehlszeile eingeben können, das dazu führt, dass sie sofort beendet wird. Wenn die GUI auch in diesem Modus angezeigt wird, führen Sie sie über eine Verknüpfung aus, für die das Steuerelement "Ausführen" auf "Minimiert" gesetzt ist:

                                Shortcut-Eigenschaftenfenster mit Run = Minimized eingekreist

Ein anderer Ansatz besteht darin, eine Batchdatei zu schreiben, die Ihr Programm minimiert (mit START /MIN) startet, einige Sekunden wartet und dann abbricht.

Leider gibt es kein Befehlszeilenargument, um es ohne GUI zu starten oder sofort zu beenden. Ich kann es natürlich mit PowerShell starten, dann eine Sekunde schlafen, dann töten, aber das wäre störend. Auch die Option zur Minimierung ist lediglich ein Vorschlag für die Anwendung, den sie leider nicht berücksichtigt. Josh vor 11 Jahren 0