2009-07-24 7 views
2

Ich habe eine native C++ - Anwendung, die ich profile muss, um Leistungsprobleme zu diagnostizieren. Der einzige Profiler, den ich für WinCE finden kann, ist der Remote Call Profiler, der die Anwendung mit dem Platform Builder erstellen muss, damit die Instrumentierungs-Hooks kompiliert werden können.Profiling Native C++ WinCE App mit Visual Studio 2008 gebaut

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

Antwort

4

Ich schätze die Antworten. Ich habe einige der beiden Vorschläge gemacht. Seitdem habe ich jedoch gelernt, dass ich falsch lag. Mit VS2008 erstellte Anwendungen können für die Verwendung mit Remote Call Profiler instrumentiert werden.

  1. Fügen Sie/callcap zum Kompilierungsschritt hinzu.
  2. Link in cecap.lib (vom Platform Builder)
1

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

2

Ich habe keine Möglichkeit gefunden, CE Apps zu profilieren; Ich verwende einen Brute-Force-Ansatz. Hier sind meine Empfehlungen:

1) Vermeiden Sie Divide und Gleitkommaoperationen in Ihrem zeitkritischen Code, da sie keine nativen Befehle der älteren ARM-Prozessoren sind. Eine einfache ganzzahlige Division wird zu 100 Takten Laufzeitbibliothekscode und Gleitkommaoperationen sind noch langsamer.

2) Schreiben Sie Ihren "inner-loop" -Code in Assembler, da der Compiler keine gute Arbeit leistet.

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

4) Selektiv aktivieren/deaktivieren Sie Abschnitte Ihres Codes, um zu messen, wie viel Zeit jeder Abschnitt dauert.

Hoffe, dass dies hilft, L.B.