Welche guten Profiler kennen Sie?
Wie lässt sich die Leistung einer C++-MFC-Anwendung messen und optimieren?
Ist eine Analyse der Algorithmen wirklich notwendig? http://en.wikipedia.org/wiki/Algorithm_analysis
Welche guten Profiler kennen Sie?
Wie lässt sich die Leistung einer C++-MFC-Anwendung messen und optimieren?
Ist eine Analyse der Algorithmen wirklich notwendig? http://en.wikipedia.org/wiki/Algorithm_analysis
Ich empfehle dringend AQTime wenn Sie auf der Windows-Plattform bleiben. Es wird mit einer Reihe von Profilern geliefert, einschließlich statischer Code-Analyse, und arbeitet mit den wichtigsten Windows-Compilern und -Systemen, einschließlich Visual C++, .NET, Delphi, Borland C++, Intel C++ und sogar gcc. Und es lässt sich in Visual Studio integrieren, kann aber auch eigenständig verwendet werden. Ich liebe es.
Wenn Sie (noch) Visual C++ 6.0 verwenden, empfehle ich Ihnen, den eingebauten Profiler zu benutzen. Für neuere Versionen können Sie versuchen Compuware DevPartner Leistungsanalyse Community Edition .
Für Windows, siehe Xperf das kostenlos mit dem Windows-SDK geliefert wird. Es verwendet gesampelte Profile, hat einige nützliche UI, und erfordert keine Instrumentierung. Ziemlich nützlich, um Leistungsprobleme aufzuspüren. Sie können Fragen beantworten wie:
Wer verbraucht die meiste CPU? Gehen Sie mithilfe von Aufrufstapeln bis zum Funktionsnamen vor. Wer weist den meisten Speicher zu? Wer führt die meisten Registry-Abfragen durch? Schreibt auf die Festplatte? usw. Sie werden überrascht sein, wenn Sie die Engpässe finden, denn sie liegen wahrscheinlich nicht dort, wo Sie sie erwartet haben!
Es ist schon eine Weile her, dass ich unmanaged Code profiliert habe, aber als ich das tat, hatte ich gute Ergebnisse mit Intels vtune. Ich bin sicher, jemand anderes wird uns sagen, wenn das überholt wurde.
Die algorithmische Analyse hat das Potenzial, Ihre Leistung tiefgreifender zu verbessern als alles, was Sie mit einem Profiler herausfinden können, aber nur für bestimmte Anwendungsklassen. Wenn Sie mit relativ großen Datenmengen arbeiten, kann die algorithmische Analyse Wege finden, um CPU/Speicher/beides effizienter zu machen. Wenn Ihre Anwendung jedoch hauptsächlich aus Formularen besteht und eine relationale Datenbank zur Speicherung verwendet, bietet sie Ihnen möglicherweise nicht viel.
Intel Thread Checker via Vtune Performance Analyzer - In diesem Bild sehen Sie die Ansicht, die ich am häufigsten verwende und die mir sagt, welche Funktion am meisten Zeit verschlingt.
Ich kann weiter in die Tiefe gehen und aufschlüsseln, welche Funktionen in ihnen mehr Zeit in Anspruch nehmen usw. Es gibt verschiedene Ansichten auf der Grundlage dessen, was Sie beobachten (Gesamtzeit = Zeit innerhalb fn + Kinder), Selbst Zeit (Zeit nur in Code läuft innerhalb der Funktion usw. verbracht).
Dieses Tool kann viel mehr als nur Profile erstellen, aber ich habe noch nicht alle Möglichkeiten erforscht. Ich würde es auf jeden Fall empfehlen. Das Tool steht auch als voll funktionsfähige Testversion zum Herunterladen zur Verfügung, die 30 Tage lang laufen kann. Wenn Sie Kostenbeschränkungen haben, würde ich sagen, dass dieses Fenster alles ist, was Sie brauchen, um Ihr Problem zu lokalisieren.
Testversion hier herunterladen - https://registrationcenter.intel.com/RegCenter/AutoGen.aspx?ProductID=907&AccountID=&ProgramID=&RequestDt=&rm=EVAL&lang=
ps: Ich habe auch mit Rational Rational gespielt, aber aus irgendeinem Grund hat es mir nicht viel gebracht. Ich vermute, Rational könnte auch teurer sein als Intel.
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.