我有一种方法可以进行一些过滤操作。此方法循环调用 10000 次。此方法的平均执行时间约为 3000-5000 纳秒(用 测量System.nanoTime()
)。但有时(10000 个样本中有 5-10 个样本)它的峰值甚至达到 120000 纳秒。它永远不会在同一个样本上发生两次,因此它不是数据错误。这些随机减速的原因可能是什么?我认为它不相关,但代码如下:
private static int lowPassFilter(int data)
{
long startTime = System.nanoTime();
int y0 = 0;
lcount++;
lx[ln] = lx[ln + 13] = data;
y0 = (ly1 << 1) - ly2 + lx[ln] - (lx[ln + 6] << 1) + lx[ln + 12];
ly2 = ly1;
ly1 = y0;
y0 >>= 5;
if(--ln < 0)
ln = 12;
long endTime = System.nanoTime();
long diff=endTime - startTime;
return(y0);
}