Guía de seguimiento dinámico de Solaris

Eliminación de las adiciones

Al utilizar DTrace para crear secuencias de comandos de supervisión simples, puede borrar periódicamente los valores de la adición mediante la función clear(). Esta función utiliza una adición como único parámetro. La función clear() sólo borra los valores de la adición, aunque sus claves se mantienen. Por lo tanto, la presencia de una clave en una adición con un valor cero asociado indica que la clave tenía un valor distinto a cero que, posteriormente, se ha establecido en cero como parte de la función clear(). Para descartar tanto los valores como las claves de la adición, utilice la función trunc(). Consulte Truncamiento de las adiciones para obtener más información.

En el ejemplo siguiente se agrega clear() al Ejemplo 9–1:

#pragma D option quiet

BEGIN
{
	last = timestamp;
}

syscall:::entry
{
	@func[execname] = count();
}

tick-10sec
{
	normalize(@func, (timestamp - last) / 1000000000);
	printa(@func);
	clear(@func);
	last = timestamp;
}

Mientras que en el Ejemplo 9–1 se muestra la tasa de llamadas del sistema durante el período de vida de la llamada a dtrace, en el ejemplo anterior se muestra la tasa de llamadas del sistema sólo durante el período de diez segundos más reciente.