Java –性能中的反向循环与正向循环

您所在的位置:网站首页 java反向输出数组 Java –性能中的反向循环与正向循环

Java –性能中的反向循环与正向循环

2023-09-27 00:38| 来源: 网络整理| 查看: 265

节点 本文使用endTime - startTime方法来测量循环的性能,它忽略了JVM预热优化,其结果可能不一致或准确。

更好的方法是使用OpenJDK JMH框架进行基准测试,因为它将自动处理JVM的预热问题,请参见此示例– JMH –正向循环与反向循环

针对列表的正向循环与反向循环的Java性能测试,哪个更快?

正向循环

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

反向循环

for (int i = aList.size() - 1; i >= 0; i--) { String s = aList.get(i); } 1.正向循环与反向循环 LoopForwardReverseTest.java package com.mkyong.benchmark.bk; import java.util.Arrays; import java.util.Date; import java.util.List; public class LoopForwardReverseTest { private static List DATA_FOR_TESTING = Arrays.asList(createArray()); public static void main(String[] argv) { LoopForwardReverseTest obj = new LoopForwardReverseTest(); obj.forwardLoop(); obj.reverseLoop(); } public void forwardLoop() { System.out.println("\n--------- Forward Loop -------\n"); long startTime = new Date().getTime(); for (int i = 0; i < DATA_FOR_TESTING.size(); i++) { String s = DATA_FOR_TESTING.get(i); //System.out.println(s); } long endTime = new Date().getTime(); long difference = endTime - startTime; System.out.println("Forward Loop - Elapsed time in milliseconds: " + difference); } public void reverseLoop() { System.out.println("\n--------- Reverse Loop -------\n"); long startTime = new Date().getTime(); for (int i = DATA_FOR_TESTING.size() - 1; i >= 0; i--) { String s = DATA_FOR_TESTING.get(i); //System.out.println(s); } long endTime = new Date().getTime(); long difference = endTime - startTime; System.out.println("Reverse Loop - Elapsed time in milliseconds: " + difference); } private static String[] createArray() { int N = 10_000_000; String sArray[] = new String[N]; for (int i = 0; i < N; i++) { sArray[i] = "Array " + i; } return sArray; } }

结果

--------- Forward Loop ------- Forward Loop - Elapsed time in milliseconds: 64 --------- Reverse Loop ------- Reverse Loop - Elapsed time in milliseconds: 49 参考文献 JMH – Java正向循环与反向循环 标记: 基准 Java 循环

翻译自: https://mkyong.com/java/reverse-loop-versus-forward-loop-in-performance-java/



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3