0

いくつかのフィルタリング操作を行うメソッドがあります。このメソッドはループで 10000 回呼び出されます。このメソッドの平均実行時間は、約 3000 ~ 5000 ナノ秒です ( で測定System.nanoTime())。しかし、時には (10000 のうち 5 ~ 10 サンプル)、120000 ナノ秒に達することもあります。同じサンプルで 2 回発生することはないため、データ障害ではありません。これらのランダムな速度低下の原因は何でしょうか? 関連性はないと思いますが、以下のコード:

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);
}
4

2 に答える 2

0

デバイス上の他のプロセスが、これらの時間間隔で何らかの重労働を行い、CPU リソースを求めてアプリと競合している可能性が最も高いと思われます。

于 2014-06-17T17:21:40.060 に答える