El sondeo END se activa después de todos los demás sondeos. Este sondeo no se activará hasta que se hayan completado las cláusulas del resto de los sondeos. Este sondeo puede utilizarse para procesar el estado que se ha recopilado o para dar formato a la salida. Por lo tanto, la acción printa() se utiliza a menudo en el sondeo END. Los sondeos BEGIN y END pueden utilizarse conjuntamente para calcular el tiempo total que ha llevado el seguimiento:
BEGIN { start = timestamp; } /* * ... other tracing actions... */ END { printf("total time: %d secs", (timestamp - start) / 1000000000); }
Consulte Normalización de los datos y printa() para conocer otros usos habituales del sondeo END.
Al igual que con el sondeo BEGIN, no se define ningún argumento para el sondeo END. El contexto en el que el sondeo END se activa es arbitrario y no se debe depender de él.
Al realizar un seguimiento con la opción bufpolicy establecida en fill, se reserva el espacio adecuado para incluir todos los registros de los que se ha realizado un seguimiento en el sondeo END. Consulte Directiva fill y sondeos END para obtener más información.
La acción exit() provoca que se detenga el seguimiento y que se active el sondeo END. Sin embargo, se produce un retraso entre la llamada de la acción exit() y la activación del sondeo END. Durante este retraso, no se activará ningún sondeo. Después de que el sondeo llame a la acción exit(), el sondeo END no se activa hasta que el consumidor de DTrace determine que se h llamado a exit() y se ha detenido el seguimiento. La tasa con la que se comprueba el estado de salida puede establecerse mediante la opción statusrate. Para más información, consulte el Capítulo 16Opciones y optimizables.