import java.util.ArrayList;
import java.util.List;
public class HowFastMulticoreProgramming {
public static void main(String[] args) {
//Produce Date
List<String> data=new ArrayList<String>();
for(int i=0;i<10000;i++){
data.add(""+i);
}
/*Style Java 1.4*/
long beforeStartJDK14=System.currentTimeMillis();
for (int i = 0; i < data.size(); i++) {
System.out.println(data.get(i));
}
long afterPrintJDK14=System.currentTimeMillis();
/*Style Java 1.5*/
long beforeStartJDK15=System.currentTimeMillis();
for (String s : data) {
System.out.println(s);
}
long afterPrintJDK15=System.currentTimeMillis();
long beforeStartJDK18=System.currentTimeMillis();
data.parallelStream().forEach(string-> System.out.println(string));
long afterPrintJDK18=System.currentTimeMillis();
System.out.println("Milis Need JDK 1.4 : "+(afterPrintJDK14-beforeStartJDK14));
System.out.println("Milis Need JDK 1.5 : "+(afterPrintJDK15-beforeStartJDK15));
System.out.println("Milis Need JDK 1.8 : "+(afterPrintJDK18-beforeStartJDK18));
}
}
나는 목록을 인쇄하기 위해 3 가지 스타일 (JDK 버전 기준)이 있습니다. 그러나 모든 스타일은 완료 할 시간이 필요합니다. 사실 람다와 함께 스타일 jdk 8 .. 어떤 스타일과 큰 neeeded. 어째서?간단한 인쇄 목록으로 Java 8 속도 테스트
이것은이 코드를 실행 한 결과입니다. 939
나는 누군가가이 질문에 대답 할 수 있기를 바랍니다 : 76 시간 Milis JDK 1.8이 필요 : 85 시간 Milis JDK 1.5이 필요 : 시간 Milis는 JDK 1.4이 필요합니다.
Java 8 버전은 병렬로 수행되므로 스레드 생성으로 인해 성능이 저하 될 수 있습니다. parrallel 작업없이 다른 버전을 만듭니다. – meskobalazs
http://stackoverflow.com/questions/504103/how-do-i-write-a-correct-micro-benchmark-in-java – reto
가능한 복제본 [Java 8의 스트림 : 왜 병렬 스트림의 속도가 더 느립니까?]를 읽어보십시오. (http://stackoverflow.com/questions/23170832/java-8s-streams-why-parallel-stream-is-slower) –