estadísticas es divertido e interesante, pero para ajuste de rendimiento, no lo necesita. Here's an explanation why, pero una simple analogía podría dar la idea.
Un problema de rendimiento es como un objeto (que en realidad puede ser varios objetos conectados) enterrado bajo un acre de nieve, y usted está tratando de encontrarlo sondeando aleatoriamente con un palo. Si su bastón lo golpea un par de veces, lo ha encontrado; su tamaño exacto no es tan importante. (Si realmente quiere una mejor estimación de lo grande que es, tome más sondas, pero eso no cambiará su tamaño.) La cantidad de veces que tiene que sondear la nieve antes de encontrarla depende de la cantidad de área de la nieve debajo de la cual está.
Una vez que lo encuentre, puede sacarlo. Ahora hay menos nieve, pero puede haber más objetos debajo de la nieve que queda. Entonces, con más pruebas, puedes encontrarlas y eliminarlas también. De esta manera, puedes continuar hasta que no puedas encontrar nada más que puedas eliminar.
En el software, la nieve es hora, y el sondeo toma muestras de la pila de llamadas en tiempo aleatorio. De esta manera, es posible encontrar y eliminar múltiples problemas, lo que resulta en large speedup factors.
Y las estadísticas no tienen nada que ver con eso.
Eso es realmente en última instancia cómo lo hago, y es probable que tengas razón. Aún así, me gustaría obtener más información acerca de las estadísticas, y este parece ser un buen lugar para probar y hacerlo práctico para hacerlo. –
++ Neil tiene razón, aunque principalmente miro en el nivel de la línea, no en el nivel de la función. (Y, Neil, espero que por "porcentaje de tiempo" quieras decir "tiempo total", no "tiempo propio", y espero que quisieras "tiempo de reloj de pared", no solo de CPU, porque a medida que el software aumenta, el tiempo pierde se vuelve cada vez más debido a llamadas de función innecesarias, y algunas de ellas hacen E/S). –