Perfilando una función mex
Acabo de reescribir un programa Matlab en c ++ como una función mex para acelerar las cosas, con resultados fantásticos. Esta decisión de optimización fue una muy buena idea, con una velocidad de hasta un factor 20 sin subprocesos. Todavía me dejó con curiosidad acerca de en qué estaba gastando el tiempo la función mex y queriendo identificar posibles cuellos de botella.
Estoy buscando una forma de perfil mex-funciones. El perfilador matlab no es de mucha utilidad, y los otros perfiladores que he descargado (tanto de forma gratuita como de prueba) quieren que se ejecute un ejecutable. No soy un gurú de mex, pero hasta donde he entendido, la única forma de ejecutar un mex es desde Matlab. La función mex se compila en una dll, pero se llama .mex64. Por lo tanto, este problema debería ser similar a perfilar una dll. Para escribir la función mex de c ++ utilicé un VS2005 de un solo usuario (es decir, no la versión del equipo) y me estoy ejecutando en una plataforma x64.
¿Alguien sabe de una buena manera de perfilar una función mex? ¿Qué herramienta debo usar y cómo la uso cuando comienzo desde Matlab? ¿O hay alguna otra manera de perfilar el código c ++?