Ao usar o DTrace para criar scripts de monitoração simples, você pode cancelar periodicamente os valores em uma agregação usando a função clear (). Essa função possui uma agregação como seu único parâmetro. A função clear() cancela somente os valores da agregação; as chaves da agregação são mantidas. Assim, a presença de uma chave em uma agregação que possui um valor associado de zero indica que a chave tinha um valor diferente de zero que foi subseqüentemente definido como zero como parte de clear(). Para descartar os valores de uma agregação e suas chaves, use trunc(). Consulte Truncando agregações para obter detalhes.
O exemplo a seguir adiciona clear() ao Exemplo 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;
}
Enquanto o Exemplo 9–1 mostra a taxa de chamada do sistema durante a invocação de dtrace, o exemplo anterior mostra a taxa da chamada do sistema somente para o período de dez segundos mais recente.