如何使用currentTimeMillis()在类上运行计算速度?

时间:2013-09-22 21:45:33

标签: java performance analysis

我正在尝试使用其中的一些方法在此名为Point的对象类上运行此测试 - 以提高计算速度。它在构造函数Point(String, double, double)中需要三个输入/变量。

我有这个想法,但似乎无法将其放入代码中:我想使用Math.random在A和C之间创建一个随机数,将数字放在一个变量中(对于这三个输入中的每一个)并使用它来创建一个对象数组,然后遍历数组,每次都创建新的实例。

我的下面的代码很乱,但任何帮助都会受到赞赏。

public class Test{
    long startTime = System.currentTimeMillis();
    long total = 0;
    for (int i = 0; i < 10000000; i++) {
        total += i;
        randomValue1 = (int)(Math.random()*10); 
        randomValue2 = (int)(Math.random()*10);
        Point[] instances = new Point[numberOfElements];
        for (int i=0; i<instances.length; i++) {
            instances[i] = new Point( ,randomValue1, randomValue2);
        }
    }
    long stopTime = System.currentTimeMillis();
    long elapsedTime = stopTime - startTime;
    System.out.println(elapsedTime);
}

1 个答案:

答案 0 :(得分:3)

不仅currentTimeMillis没有足够的分辨率,而且由于JIT的优化,手动编写微基准也很棘手且容易出错。您应该考虑使用微基准框架,例如Caliper