Con 4D v17 R5, hemos mejorado los registros de depuración añadiendo métodos y permitiendo el seguimiento de cada proceso de forma independiente. Con esta versión R, hemos ido un paso más allá con el envío de una herramienta de análisis de los registros de depuración para ayudarle a monitorizar la ejecución de los procesos. Podrás ver qué procesos son los que más consumen, la cadena de llamadas con su correspondiente tiempo de ejecución, y mucho más.
HDI: Analizador de registros de depuración
En esta entrada del blog, veremos un escenario en el que tenemos que averiguar por qué hay respuestas lentas de una base de datos que sirve páginas web dinámicas.
Algunos usuarios han notado que el sitio web es a veces lento, pero no pueden dar más detalles. ¡Hay varias maneras de investigar, así que vamos a echar un vistazo y tratar de averiguar lo que está pasando!
Generar registros de depuración
El analizador de registros de depuración se basa en el formato de archivo de registros de depuración de 4D v14. Así que para activar el registro, sólo tiene que utilizar el siguiente código
//registro de depuración activado con parámetros (opción 2), formato de archivo 4D v14 (opción 4), y escritura pospuesta (opción 8)
)
SET DATABASE PARAMETER (Debug log recording;2+4+8
Tenga en cuenta que a partir de 4D v17 R5, puede habilitar la depuración para un solo proceso. Si sospecha que un proceso en particular es el responsable de la latencia, ahora es fácil y consume menos tiempo iniciar los registros de depuración sólo para ese proceso en particular:
SET DATABASE PARAMETER (Current process debug log recording;2+4+8)
Crear un proyecto
El analizador de registros de depuración gestiona proyectos, que son un conjunto de archivos de registros de depuración, y una sesión de registros de depuración.
Al abrir una base de datos, se muestra una lista de proyectos almacenados. Puede crear un proyecto utilizando el botón «Nuevo». Tienes que elegir la carpeta que contiene los registros de depuración o elegir los archivos que quieres analizar, y luego dar un nombre a tu proyecto.
Tenga en cuenta que, aunque el proceso de análisis se ejecute de forma preventiva, puede llevar tiempo en función del número de archivos a analizar y de los procesadores de su máquina.
Analizar el proyecto
Al seleccionar el proyecto de la lista, un resumen muestra información básica como el rango de los registros de depuración y las líneas analizadas. Puede ver las cadenas de llamadas del proyecto, las estadísticas y los detalles del proyecto haciendo clic en los botones correspondientes.
CADENAS DE LLAMADAS
La pantalla de cadenas de llamadas muestra la lista de procesos con el tiempo total de ejecución. La lista está ordenada para mostrar los procesos que consumen más tiempo en la parte superior de la pantalla.
Puede ampliar la cadena de llamadas de procesos y ver la operación que más consume en cada nivel. Al hacer clic en un proceso con la tecla ALT, se extiende automáticamente la cadena de llamadas más pesada, y al hacer doble clic en una operación, la traslada al explorador de cadenas. A continuación, puede seleccionar un nivel de la lista para actualizar la vista de la lista jerárquica en el nivel correspondiente. Para cada comando seleccionado, se muestra el número total de llamadas, la duración total y la duración media.
Ejemplo
En el siguiente ejemplo, hemos buscado los procesos y comandos que más consumen. Podemos ver que el comando RELATE MANY SELECTION puede tardar más de un minuto en completarse, así que echemos un vistazo a la sección de información detallada y veamos dónde fue llamado el comando.
Información detallada
Selección del rango de tiempo
La pantalla detallada presenta una línea de tiempo de la actividad, mostrada minuto a minuto. Puede ampliar o reducir la imagen para ver más o menos detalles. Esto le permite seleccionar el rango de tiempo específico a analizar. Puede seleccionar sólo uno o varios minutos desplazando los límites.
Cuando se selecciona un nuevo rango, se ejecuta un análisis y se muestran los resultados en la parte inferior de la pantalla. Al señalar los periodos de alta actividad, tiene otra forma de determinar los procesos lentos .
Pestaña RESUMEN
La pestaña Resumen muestra las estadísticas generales del tiempo de ejecución del proceso para el intervalo de tiempo seleccionado. Puede contraer las estadísticas seleccionando un proceso de la lista.
Pestaña Top
La pestaña Top muestra todas las operaciones registradas con su número de llamadas y el tiempo total de ejecución para los procesos elegidos y el intervalo de tiempo. La lista puede reducirse utilizando un filtro para comandos, métodos o métodos miembros. Esta es otra buena forma de determinar los comandos, métodos, etc. que más consumen.
Siguiendo nuestro ejemplo, hemos seleccionado un rango de tiempo y filtrado por comandos. Aparece una confirmación: el comando RELATE MANY SELECTION se ha utilizado varias veces y ha consumido mucho tiempo. Vamos al siguiente paso para obtener más detalles.
Operaciones
La pestaña Operaciones muestra todas las operaciones detalladas para un minuto aislado de los procesos elegidos. Puede reducir la lista o simplemente destacarla buscando una operación. Esta estadística está limitada a un minuto por razones de rendimiento, así que no olvide seleccionar el minuto en el que desea ver las operaciones iniciadas.
Esta lista puede ser muy útil porque le muestra todas las líneas de código ejecutadas. También puedes ordenarla por la columna.
Para terminar nuestro ejemplo, buscamos el comando RELATE MANY SELECTION , filtramos la lista y la ordenamos por la columna Duración (para poner las llamadas más largas al principio de la lista). Parece que las dos llamadas que más tiempo consumen se realizan con el mismo campo. Un rápido vistazo a la estructura de nuestra base de datos y encontramos al culpable: el campo necesitaba ser indexado.
Para concluir
Esta herramienta está diseñada para ayudarte a encontrar conflictos en tu código y mejorar el rendimiento de tu base de datos. Ensúciate las manos y diviértete investigando descargando el IDH de arriba.