Profiling einer mex-Funktion
Ich habe gerade ein Matlab-Programm in c ++ als mex-Funktion umgeschrieben, um die Dinge zu beschleunigen, mit fantastischen Ergebnissen. Diese Optimierungsentscheidung war eine sehr sehr gute Idee, mit einer Geschwindigkeit von bis zu einem Faktor 20 ohne Threading. Ich war immer noch neugierig, wofür die mex-Funktion Zeit aufbrachte und mögliche Engpässe identifizieren wollte.
Ich suche nach einer Möglichkeit, mex-Funktionen zu profilieren. Der Matlab-Profiler ist nicht sehr nützlich, und die anderen Profiler, die ich heruntergeladen habe (sowohl kostenlos als auch als Testversion), möchten, dass eine ausführbare Datei ausgeführt wird. Ich bin kein Mex-Guru, aber soweit ich verstanden habe, ist die einzige Möglichkeit, einen Mex zu leiten, Matlab. Die mex-Funktion wird in eine DLL kompiliert, heißt aber .mex64. Daher sollte dieses Problem dem Erstellen eines DLL-Profils ähneln. Um die c ++ mex-Funktion zu schreiben, habe ich einen Einzelbenutzer-VS2005 (d. H. Nicht die Team-Version) verwendet und laufe auf einer x64-Plattform.
Kennt jemand eine gute Möglichkeit, eine Mex-Funktion zu profilieren? Welches Tool sollte ich verwenden und wie verwende ich es, wenn ich in Matlab starte? Oder gibt es eine andere Möglichkeit, den c ++ - Code zu profilieren?