4

Ich baue eine C++ - Anwendung, die einige Zahlenverarbeitung ausführt. Ich laufe in Visual Studio 2008 PRO SP1, im Freigabemodus, Windows 7 64 Bit. Wenn ich es in der IDE ausführen, dauert die Anwendung 4 Minuten, wenn ich die gleiche ausführbare Datei von Windows Explorer ausführen, dauert es 6 Sekunden! Ich habe keine Ahnung. Ich habe überprüft, dass dies nicht vom Prozessor und vom Betriebssystem abhängt. Ich glaube nicht, dass ich seltsame VS-Plugins habe, die etwas im Hintergrund tun.Meine C++ - Programmdatei läuft viel schneller außerhalb der Visual Studio 2008-IDE als drinnen, sogar in der Version

Irgendwelche Hinweise? Vielen Dank im Voraus!

Marco

+1

Mögliche Duplikate: http://StackOverflow.com/Questions/2395520/visual-studio-slowing-down-Application –

+0

Same passiert mir! Und wenn man sich den ProcessExplorer anschaut, verbraucht VC devenv.exe 10 ~ 30% CPU, sogar die exec wird extern gestartet. – 9dan

+0

Was meinen Sie mit "Die Anwendung dauert 4 Minuten"? Wie lange dauert es bis *, oder wie lange dauert es, bis eine bestimmte Methode ausgeführt wird? –

Antwort

11

Vermutlich die Verlangsamung durch den Debugger verursacht wird, angebracht ist, wenn Sie die Anwendung in Visual Studio starten. Dies ist auch dann der Fall, wenn Sie das Programm im "Release" -Modus erstellt haben.

Um zu bestätigen, dass dies tatsächlich die Ursache des Problems ist, versuchen Sie Ihre Anwendung ohne den Debugger ausgeführt wird, die „ohne Debuggen starten“ Befehl oder Ctrl +F5 verwenden.

      Start Without Debugging

Es lohnt sich nichts, das in C++ speziell, wenn Sie ohne das Debuggen starten, wird Ihr Programm nicht den Debug-Heap Windows verwenden. Mit dem angehängten Debugger wird es.

+0

Das funktioniert für mich, mir war nicht bewusst, dass der Debugger noch im Freigabemodus lief. Vielen Dank! –

+1

Überprüfen Sie das Ausgabefenster, um zu sehen, was passiert. Verwenden Sie keine Ausnahmen für den Kontrollfluss. –

+0

@Marco: In der Tat. Die Idee ist, dass Sie immer noch Breakpoints usw. treffen können, selbst wenn sie im Release-Modus kompiliert werden. Freut mich zu hören, dass es dein Problem behoben hat. Natürlich würde ich mir darüber nicht allzu viele Gedanken machen - Ihre App ist viel schneller, wenn Sie * außerhalb * des Debuggers laufen. –

0

Wie Cody erwähnt, ist eine Option, einfach nicht zu debuggen. Aber wenn Sie Ihre Debugging-Sitzungen beschleunigen möchten, hier sind ein paar Dinge, die ich gefunden habe, einen großen Unterschied machen können:

  • Entfernen Sie Debugging Druckanweisungen, die nicht mehr notwendig sind. Wenn Sie sehen, dass sich Ihr Protokoll mit Text füllt, wird Sie das wahrscheinlich erheblich verlangsamen.
  • entfernen Unterbrechungspunkte (Ctrl + Umschalt + F5). Ein paar Mal habe ich einen enormen Leistungsabfall bemerkt, und es stellte sich heraus, dass es auf einen Breakpoint mit einer Bedingung zurückzuführen war, die nie erreicht wurde.