java - 如何让java程序只运行1秒?

标签 java performance compiler-construction

我需要校准机器,所以我的目标是运行一个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);

关于java - 如何让java程序只运行1秒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13759233/

相关文章:

javascript - 覆盖变量或检查变量是否存在

c++ - 如何确定使用了哪个编译器来编译可执行文件?

c# - LINQ是如何编译成CIL的?

java - Java中使用readly读取大文件

java - 从 Java 生成 LLVM 代码

algorithm - 求一个递归算法的复杂度

performance - 将文件上传到 Akamai 的最快方法是什么?

java - 正则表达式,试图匹配不超过一个句点?

java - 是否可以调用在 Java 方法中作为参数传递的 Scala 方法?

linux - 如何在 linux 中编译 Fortran 77 文件?