Guía de seguimiento dinámico de Solaris

Utilizar adiciones

Tal como se analizó en el Capítulo 9Adiciones, las adiciones de DTrace permiten agregar los datos de forma escalable. Podría parecer que las matrices asociativas ofrecen una funcionalidad similar a las adiciones. Sin embargo, y dada su naturaleza de variable global y de propósito general, no pueden ofrecer la escalabilidad lineal de las adiciones. Por lo tanto, siempre que sea posible, utilice las adiciones en lugar de las matrices asociativas. No se recomienda el siguiente ejemplo:

syscall:::entry
{
	totals[execname]++;
}

syscall::rexit:entry
{
	printf("%40s %d\n", execname, totals[execname]);
	totals[execname] = 0;
}

Es preferible el ejemplo siguiente:

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

END
{
	printa("%40s %@d\n", @totals);
}