より良い方法は、ベンチマークテストを行うためにhttps://openjdk.java.net/projects/code-tools/jmh/[OpenJDK JMH]フレームワークを使用することです。これはJVMのウォームアップの懸念を自動的に処理するためです。例 – リンク://java/java-jmh-benchmark-tutorial/[Java JMHベンチマークチュートリアル]

次のループメソッドのパフォーマンスをテストするための簡単なJavaコード。

  1. Whileループ

  2. For Loop

  3. 反復ループ

Javaでは、endTimeとstartTimeを比較して関数の経過時間を取得するだけです。

    long startTime = new Date().getTime();
   //call something else
    long endTime = new Date().getTime();
    long difference = endTime - startTime;
    System.out.println("Elapsed time in milliseconds: " + difference);

While対For Iterator

1、5、10、1500万のレコードを含む `List`をループするためのJavaコード。

LoopSimpleTest.java

package com.mkyong.benchmark.bk;

import java.util.Arrays;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class LoopSimpleTest {

    private static List<String> DATA__FOR__TESTING = Arrays.asList(createArray());

    public static void main(String[]argv) {

        LoopSimpleTest obj = new LoopSimpleTest();

        obj.loopIterator();
        obj.loopFor();
        obj.loopWhile();

    }

    public void loopFor() {
        System.out.println("\n--------- For Loop -------\n");
        long startTime = new Date().getTime();

        for (int i = 0; i < DATA__FOR__TESTING.size(); i++) {
            String s = DATA__FOR__TESTING.get(i);
        }

        long endTime = new Date().getTime();
        long difference = endTime - startTime;
        System.out.println("For - Elapsed time in milliseconds: " + difference);
    }

    public void loopWhile() {
        System.out.println("\n--------- While Loop -------\n");
        long startTime = new Date().getTime();

        int i = 0;
        while (i < DATA__FOR__TESTING.size()) {
            String s = DATA__FOR__TESTING.get(i);
            i++;
        }

        long endTime = new Date().getTime();
        long difference = endTime - startTime;
        System.out.println("While - Elapsed time in milliseconds: " + difference);
    }

    public void loopIterator() {
        System.out.println("\n--------- Iterator Loop -------\n");
        long startTime = new Date().getTime();

        Iterator<String> iterator = DATA__FOR__TESTING.iterator();
        while (iterator.hasNext()) {
            String next = iterator.next();
        }

        long endTime = new Date().getTime();
        long difference = endTime - startTime;
        System.out.println("Iterator - Elapsed time in milliseconds: " + difference);
    }

    private static String[]createArray() {
        String sArray[]= new String[15__000__000];
        for (int i = 0; i < 15__000__000; i++) {
            sArray[i]= "Array " + i;
        }
        return sArray;
    }

}

出力

D:\test>java -Xms1024m -Xmx1024m ArrayToList

--------- Iterator Loop -------

イテレータ - 経過時間(ミリ秒):390

--------- For Loop --------

For - Elapsed time in milliseconds: 234


--------- While Loop -------

While  - 経過時間(ミリ秒):234


image、title = "パフォーマンステストインループ"

反復ループが最も遅く、forループとの違い
whileループはそれほど重要ではありません。

===参考文献

。リンク://java/java-jmh-benchmark-tutorial/[Java JMHベンチマークチュートリアル]
リンク://タグ/ベンチマーク/[ベンチマーク]リンク://タグ/java/[java]

loop


performance