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

Java 如何使用currentTimeMillis()在类上运行计算速度?,java,performance,analysis,Java,Performance,Analysis,为了提高计算速度,我尝试在名为Point的对象类上运行这个测试,其中包含一些方法。它在其构造函数点中接受三个输入/变量(字符串、双精度、双精度) 我有这个想法,但我似乎无法将其放入代码中:我想使用Math.random,在a和C之间创建一个随机数,将该数放入变量(对于这三个输入中的每一个),并使用它创建一个对象数组,然后在数组上循环,每次创建新实例 我下面的代码相当混乱,但任何帮助都将不胜感激 public class Test{ long startTime = System.curr

为了提高计算速度,我尝试在名为
Point
的对象类上运行这个测试,其中包含一些方法。它在其构造函数
点中接受三个输入/变量(字符串、双精度、双精度)

我有这个想法,但我似乎无法将其放入代码中:我想使用
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);
}
公共类测试{
long startTime=System.currentTimeMillis();
长总计=0;
对于(int i=0;i<10000000;i++){
总数+=i;
randomValue1=(int)(Math.random()*10);
randomValue2=(int)(Math.random()*10);
点[]实例=新点[numberOfElements];

对于(iTi=0;i

不仅 CurrutTimeMysI/Case>没有足够的分辨率,而且由于JIT的优化,手工编写微基准是棘手的和容易出错的。您应该考虑使用一个微基准框架,例如。”< /P> < P>不仅 CurrurthTimeMix[/Cuth]没有足够的分辨率,而且还写入。由于JIT的优化,手工微G基准是棘手和容易出错的。您应该考虑使用一个MICROBASIC框架,比如.N/TP>使用CurrnTimeMILIS的NimeTimes,您还想通过运行该方法来激活JIT大约10000次(如我所理解的)。为了获得更好的结果,此代码中的大部分似乎并没有按照您的想法进行操作。例如,

total
没有用于任何用途,如果它用于任何用途,也不会有任何用处。每个点的随机值都是相同的。这些点是二维的,因此不清楚您将使用三个值来做什么。大部分时间将用于创建对象和泛型ting随机值。使用currentTimeMillis的nanoTime,您还需要运行大约10000次方法来预热JIT(据我所知)为了获得更好的结果,此代码中的大部分似乎并没有按照您的想法进行操作。例如,
total
没有用于任何用途,如果它用于任何用途,也不会有任何用处。每个点的随机值都是相同的。这些点是二维的,因此不清楚您将使用三个值来做什么。大部分时间将用于创建对象和泛型随机值。