2 Stimmen

Schritte bei der Ausführung einer Exe

Pregunta :

Wenn wir eine Exe (nehmen Sie durch Doppelklicken), wo die ganze Zeit verbracht wird, bevor es tatsächlich beginnt die Ausführung?

a) Laden der Exe in den Speicher
b) ?
c) ?

Hintergrund der Frage :

Ich erstelle ein Profil der Ausführung einer Anwendung (App.exe) und versuche, ihre Leistung zu verbessern. Ich habe einen Test, der so etwas tut wie:

startTime = beginTimer()
"App.exe starten"
"Warten, bis ein Fenster ansprechbar ist" - App.exe wird in dieser Zeit ausgeführt und startet ein Fenster
endTime = endTimer()
outputValue = endTime - startTime

Ich habe Zeitstempel an verschiedenen Stellen in App.exe hinzugefügt, um die Ausführungszeit in den verschiedenen Phasen und die Gesamtausführungszeit von App.exe zu ermitteln.

Ich stelle fest, dass "outputValue" etwa 5 Sekunden beträgt, während die Gesamtzeit für die Ausführung von App.exe (ermittelt anhand der Zeitstempel in der Exe) etwa 2 Sekunden beträgt.

Ich habe den Eindruck, dass etwa 3 Sekunden verstrichen sind, bevor App.exe überhaupt mit der Ausführung begann. Die Größe der Exe beträgt etwa 2700 KB.

1voto

nob Punkte 1344

So sollte es sein (nur eine Vermutung, der Kurs über Betriebssysteme ist schon einige Zeit her)

  1. Mapping in den Speicher
  2. Laden von verknüpften gemeinsamen Bibliotheken (DLLs) und deren verknüpften gemeinsamen Bibliotheken
  3. Prozess-Erstellung
  4. Instanziierung/Erzeugung von statischen Objekten und anderen Dingen vor der main-Funktion
  5. (vielleicht Laden von Ressourcen, weiß nicht, ob Windows das tut)
  6. C/C++-Bibliotheks-Methoden vor der main-Funktion
  7. Start der Hauptfunktion.

4 und 6 können zusammenkommen.

0voto

Alex Punkte 6381

Die Anwendung mag zwar klein sein, aber es ist möglich, dass sie auf eine Vielzahl von Bibliotheken verweist.

  1. Lesen vom Laufwerk
  2. Schreiben in den Speicher
  3. Laden von Dlls und zugehörigen Dateien (Lesen vom Laufwerk)
  4. Schreiben in den Speicher
  5. erstellt Prozess und führt Programmlogik aus

Was Sie tun können, um sie zu verbessern:

  • im Startprogramm alle nicht verwendeten Includes entfernen
  • Stellen Sie sicher, dass das Programm ohne Debug-Informationen kompiliert wird. In Visual Studio ist es "Release" und nicht "Debug". Dies verbessert die Leistung und verringert die Größe der ausführbaren Datei.
  • Wenn das Projekt beim Start die Datenbank und/oder die Datei liest, liegt das Problem höchstwahrscheinlich hier
  • dies ist eine .NET-Anwendung, stellen Sie sicher, dass sie auf dem neuesten .NET Framework läuft

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X