Los puntos de interrupción del método pueden reducir drásticamente la depuración
Cuando se agrega un punto de interrupción a la línea de una declaración de método (en Intellij IDEA o Android Studio), aparece una ventana emergente:
Los puntos de interrupción del método pueden reducir drásticamente la depuración
- Consulta de actualización SQLite Android
- Mostrar icono de emoción en Android TextView a través de caracteres Unicode u otra forma
- ViewPager + Adaptador en Fragmento => laggy swiping
- Robolectric usando Fragments y ActionBarCompat NullPointerException
- Java Jackson org.codehaus.jackson.map.exc.UnrecognizedPropertyException
¿Por qué sería dramáticamente ralentizar la depuración, es mi pregunta? ¿Qué es diferente al colocar el punto de interrupción en la primera línea de la función?
¡Gracias!
- Problema de exactitud de Google maps
- Migración en Realm 0.81.1
- Reproductor de música Android no reindexando después de la adición de canción
- ¿Cómo sé si mi mensaje de GCM es lo suficientemente pequeño (<4kb) para enviar? (Cómo obtener el tamaño de la cadena?)
- Switch case statement error: las expresiones case deben ser constantes
- Problema con Proguard de Android: sigue recibiendo error "java.io.IOException: No se puede procesar la clase ..." cuando se oculta la obfuscación
- ¿Por qué Gradle necesita un archivo settings.gradle?
- Condicional no se activa cuando se le da un 75: android
Miré alrededor un poco, y vi este post en el Intellij Documetation :
Punto de interrupción del método
Los puntos de interrupción del método actúan en respuesta al ingreso o salida del programa de un método en particular. Le permiten orientar sus sesiones de depuración por el método que desea investigar, en lugar de por el número de línea. Los puntos de interrupción del método permiten seguir el flujo del programa al nivel del método, así como verificar las condiciones de entrada y salida. Tenga en cuenta que el uso de puntos de interrupción de método puede ralentizar la aplicación que está depurando.
Supongo que detiene el programa justo antes de entrar en el método, para que pueda evaluar los parámetros y tal antes de entrar en el método.
La razón por la que se reduce drásticamente es (Esto es lo que puedo reunir, porque eso es todo lo que podía encontrar en los puntos de interrupción de método en la documentación de Intellij) que tiene que:
Le permiten seguir el flujo del programa en el nivel del método, así como verificar las condiciones de entrada y salida
Y supongo que tomaría mucho más tiempo que detener la ejecución del programa
Mi entendimiento es que el código debe ejecutarse de forma interpretativa (en lugar de utilizar JIT para precompilar?) Cuando el punto de interrupción se establece en la entrada de método.
Si estableció el punto de interrupción en la primera línea del método en su lugar, sospecho que un índice de número de línea en el código se puede utilizar para cambiar simplemente un opcode de interrupción para el código de operación original, por lo que la aplicación se ejecuta a toda velocidad. (Que todavía parece bastante lento para mí al depurar;)