2011-09-13 6 views
6

Estoy usando Very Sleepy para crear un perfil de código C++, y me doy cuenta de que en la vista Fuente, donde muestra las mediciones de color rojo por tiempo, siempre hay medidas en las líneas que solo tienen el método abierto o cierre de llaves, en algunos casos estos fueron bastante altos en comparación con las otras líneas de código en la función.¿Qué representan las medidas de tiempo presentadas junto a las llaves en Very Sleepy Profiler?

Mi suposición inicial es que muestra el tiempo invertido empujando los parámetros del método en la pila para la llave de apertura, y el tiempo empleado en abrir la pila para la llave de cierre. ¿Es esto cierto?

+0

¿Las rutinas contienen variables locales que se asignan y destruyen, como las cadenas? Esto puede causar un gran desmantelamiento y destrucción ocultos, y esas llaves son las líneas de la pila mientras está sucediendo. –

+0

@MikeDunlavey Veo esto en un método que solo tiene variables locales primitivas también. –

+0

Bueno, estoy entre las personas que usan [este método] (http://stackoverflow.com/questions/375913/what-can-i-use-to-profile-c-code-in-linux/378024# 378024), y nunca hay ninguna duda. Te dice, siguiendo las instrucciones, exactamente lo que lleva tiempo. (Tengo el código fuente de VerySleepy, pero con solo mirarlo, es difícil saber qué está haciendo en realidad). –

Respuesta

4

Obtuve una respuesta a esto de Richard Mitton (@grumpydev), el mantenedor de Very Sleepy, en twitter: "Lo más probable es que la función haya sido optimizada, por lo que el número de línea ya no coincide exactamente con el código Es decir, todo el tiempo se agrupa al principio, en lugar de extenderse en el transcurso de la función ".

Cuestiones relacionadas