2 Stimmen

Profilierung von nativer C++ WinCE-App, die mit Visual Studio 2008 erstellt wurde

Ich habe eine nativen C++-Anwendung, die ich profilieren muss, um Leistungsprobleme zu diagnostizieren. Der einzige Profiler, den ich für WinCE finden kann, ist der Remote Call Profiler, der erfordert, dass die Anwendung mit dem Platform Builder erstellt wird, damit die Instrumentierungs-Hooks kompiliert werden können.

Meine Anwendung wird mit VS2008 erstellt. Irgendwelche Vorschläge?

4voto

Eric Farr Punkte 2673

Ich schätze die Antworten. Ich habe einige der Vorschläge umgesetzt. Allerdings habe ich inzwischen erfahren, dass ich falsch lag. Anwendungen, die mit VS2008 erstellt wurden, können für die Verwendung mit Remote Call Profiler instrumentiert werden.

  1. Fügen Sie /callcap zum Kompilierschritt hinzu.
  2. Verknüpfen Sie cecap.lib (aus dem Platform Builder) ein.

2voto

BitBank Punkte 8192

Ich habe keinen Weg gefunden, CE-Apps zu profilieren; ich verwende einen Brute-Force-Ansatz. Hier sind meine Empfehlungen:

1) Vermeiden Sie die Verwendung von Division und Gleitkommaoperationen in Ihrem zeitkritischen Code, da sie keine nativen Befehle der älteren ARM-Prozessoren sind. Eine einfache Ganzzahldivision verwandelt sich in 100 Takten Bibliothekscode und Gleitkommaoperationen sind noch langsamer.

2) Schreiben Sie Ihren "inneren Schleifen" -Code in Assemblersprache, da der Compiler keine gute Arbeit leistet.

3) Verwenden Sie den internen Timer (GetTickCount hat eine Auflösung von 1 ms auf WinCE), um Ihre eigenen Funktionen zu timen.

4) Aktivieren/deaktivieren Sie selektiv Abschnitte Ihres Codes, um zu messen, wie lange jeder Abschnitt benötigt.

Hoffentlich hilft Ihnen das, L.B.

1voto

Shay Erlichmen Punkte 31367

Verwenden Sie spezielle WinCE-APIs oder Bibliotheken von Drittanbietern? Denn Sie können versuchen, Ihre Anwendung für Win32 zu kompilieren, und auf dieser Plattform haben Sie viele mehr Profilierungsoptionen.

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