C++ hat drucken auf terminal deutlich verlangsamen code?

Ich habe einen code, wo ich derzeit drucken eine Menge von Diagnose-Nachrichten-terminal. Hat jemand eine Idee, wie viel diese verlangsamt meinen code? Würde ich eine große Geschwindigkeit zu erhöhen, durch umleiten der Ausgabe in eine Datei, z.B. anstelle der Ausführung:

./my_program

ich laufen

./my_program > output.log

Außerdem würde ich eine weitere Erhöhung der Geschwindigkeit durch ersetzen cout mit ofstream und schreiben auf Datei direkt?

EDIT: nehmen wir an, ich Schreibe auf /dev/shm, Zugriff auf die Festplatte-Geschwindigkeit nicht wirklich ein Problem.

  • Interessante Frage, die +1 von mir. Zeit, time ./my_program > output.log 2>&1 und sehen, was Ergebnisse Sie bekommen sind, dann vergleichen Sie es mit time ./my_program > output.log 2>&1 & (Gabel im hintergrund), und verwenden Sie multitail output.log um die Ausgabe von einem anderen terminal. Es hängt von der cpu-Last, Dienstleistungen, Prozesse, RAM...
  • Sie könnten einfach ein Profil und finden Sie heraus,... (!)
  • Ich weiß, dass Sie zurück in den alten Tagen von Windows 95, Sie könnten drücken Sie Alt+EINGABETASTE wechseln Sie die DOS-box in den text-Modus und dann Programme liefen viel schneller.
  • Versuchen Sie, den Druckauftrag über einen anderen thread und kostenlos dein Hauptprogramm-thread. Das sollte deutlich beschleunigen Ihre Leistung. Überprüfen Sie dies: superuser.com/a/312955
  • Sie könnten in der Lage sein, schneller zu bekommen die Ausgabe der Konsole durch Pufferung und/oder durch ändern der buffer-Größe. Siehe en.cppreference.com/w/cpp/io/c/setvbuf
InformationsquelleAutor user788171 | 2012-07-14
Schreibe einen Kommentar