Moin moin! Ich mache mir gerade Gedanken darüber wie ich in einem relativ umfangreichen C++ Projekt die benötigte CPU Leistung optimieren kann. Dazu müsste ich zum Beispiel herausfinden, wie oft bestimmte Funktionen aufgerufen werden und wie lang die Laufzeit von bestimmten Funktionen eigentlich ist. Wie geht man bei sowas vor? Hab ihr irgendwelche Praxistipps für mich?
Du willst also ein Profiling machen. Manche Compiler unterstützen das von Hause aus, andere kann man mit Zusatztools dafür aufpeppen.
Ein Profiler bietet sich an. Dessen Zweck ist es nämlich, genau die gewünschten Informationen zu ermitteln. Im Falle von gcc kann man mit der Option -pg übersetzen und linken, um Coe zu generieren, der Profiling-Informationen erzeugt, die dann mit gprof und/oder geeigneten graphischen Tools verwendet werden können. Speziell für Linux gibt's auch noch 'valgrind --tool=callgrind'.
Danke, Profiling ist schonmal ein gutes Stichwort. @Mark: nein, VMTs werden nicht benutzt. Als Compiler nutze ich den von MS Visual Studio 2008. Der scheint kein Profiling von Haus aus zu unterstützen. Aber es gibt ein Extratool vom MS zum Download. Ich werd das mal ausprobieren, ansonsten muss ich das halt mit dem GCC machen. Der Code ist zum Glück portabel ;)
Klaus schrieb: > Danke, Profiling ist schonmal ein gutes Stichwort. > > @Mark: nein, VMTs werden nicht benutzt. > > Als Compiler nutze ich den von MS Visual Studio 2008. Der scheint kein > Profiling von Haus aus zu unterstützen. Aber es gibt ein Extratool vom > MS zum Download. Ich werd das mal ausprobieren, ansonsten muss ich das > halt mit dem GCC machen. Der Code ist zum Glück portabel ;) CodeAnalyst von AMD ist ganz gut (und kostenlos) http://developer.amd.com/cpu/CodeAnalyst/codeanalystwindows/Pages/default.aspx oder VTune von Intel (allerdings nicht kostenlos)
Arc Net (arc) wrote:
> CodeAnalyst von AMD ist ganz gut (und kostenlos)
Läuft soweit erst ab XP. Gibt es auch was, was noch unter W2k läuft?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.