This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center
                            
                        
                    
                
                7年前关闭。
            
        

我需要校准机器,因此我的目标是运行Java程序大约1秒钟。因此,我可以在其他计算机上使用相同的程序来测量其运行时间并将其校准为1秒。

我知道1秒的运行时间太短,这取决于各种因素。但是我想知道你们是否对校准有任何想法要分享。

我想运行一个Java程序大约一秒钟。我希望编译器在数组上执行某些标准操作。我尝试使用数组查找偶数和奇数。

程序输出不是那么重要。运行时间仅需大约1秒钟。问题在于,由于1秒的数字太小,因此运行时间有时会波动,例如1.25或0.678。

有什么办法可以只强制编译器1秒钟而不会产生很大的错误值。

PS:我不想使用Thread.sleep(1000)。

现在,这是我正在使用的代码。就像我说的那样,我对输出和这样的操作并不感到困扰。我只需要1秒的运行时间。如果您有任何想法请帮助我。

long[] array = new long[5000000];
    int repeat = 10;
    long t1 = System.currentTimeMillis();

    for(int j = 0; j <=repeat; j++)
    {
        int even = 0, odd = 0;
        for(int i=0; i<array.length; i++)
        {
            array[i] = i;
        }

        for(int i=0; i<array.length; i++)
        {
            if(array[i] % 2 == 0)
                even++;
            else
                odd++;
        }
    }
    long t2 = System.currentTimeMillis();
    long t3 = t2 - t1;
    System.out.println(t3*10e-4+ " sec");

最佳答案

您好,我建议您这样做。

while(!(System.currentTimeMillis()-t1> = 1000))
{
 ...你的程序
}
System.exit(0);

10-08 18:38