Callgrind: Perfil de una parte específica de mi código

Estoy tratando de perfilar (con Callgrind) una parte específica de mi código eliminando el ruido y los cálculos que no me importan. Aquí hay un ejemplo de lo que quiero hacer:

for (int i=0; i<maxSample; ++i) {
    //Prepare data to be processed...
    //Method to be profiled with these data
    //Post operation on the data
}

Mi caso de uso es una prueba de regresión. Quiero asegurarme de que el método en cuestión sea lo suficientemente rápido (algo así como menos de un 10% de instrucciones adicionales desde la última implementación). Por eso me gustaría tener la salida más limpia de Callgrind. (Necesito un bucle for para tener una cantidad significativa de datos procesados ​​para tener una buena estimación del comportamiento del método que quiero perfilar)

Mi primer intento fue cambiar el código a:

for (int i=0; i<maxSample; ++i) {
    //Prepare data to be processed...
    CALLGRIND_START_INSTRUMENTATION;
    //Method to be profiled with these data
    CALLGRIND_STOP_INSTRUMENTATION;
    //Post operation on the data
}
CALLGRIND_DUMP_STATS;

Añadiendo las macros de Callgrind para controlar la instrumentación. También agregué las opciones --instr-atstart = no para estar seguro de que perfilé solo la parte del código que quiero ...

Desafortunadamente, con esta configuración, cuando comienzo a ejecutar mi ejecutable con callgrind, nunca termina ... No es una cuestión de lentitud, ya que la instrumentación completa dura menos de un minuto.

Yo tambien lo intenté

for (int i=0; i<maxSample; ++i) {
    //Prepare data to be processed...
    CALLGRIND_TOGGLE_COLLECT;
    //Method to be profiled with these data
    CALLGRIND_TOGGLE_COLLECT;
    //Post operation on the data
}
CALLGRIND_DUMP_STATS;

(o la opción --toggle-collect = "myMethod") Pero Callgrind me devolvió un registro sin ninguna llamada (KCachegrind es blanco como la nieve :( y dice cero instrucciones ...)

¿Usé las macros / opciones correctamente? ¿Alguna idea de lo que necesito cambiar para obtener el resultado esperado?

Respuestas a la pregunta(2)

Su respuesta a la pregunta