Arrays.sort 和 Arrays.parallelSort 对比

Arrays.sort versus Arrays.parallelSort | Javalobby

Java 8的新特性,作者在4个CPU下用下面代码对比:


public class ArraysParallelDemo {
public static void main(String[] args) throws FileNotFoundException {
List<Double> arraySource = new ArrayList<>();

Scanner reader = new Scanner(ClassLoader.
getSystemResourceAsStream("java8demo/large_array_input"));
while(reader.hasNext()){
String line = reader.nextLine();
String[] strNums = line.split(
",");
for ( String strN : strNums){
arraySource.add(Double.parseDouble(strN));
}
}

System.out.println(arraySource.size());

Double [] myArray = new Double[1];
myArray = arraySource.toArray(myArray);
long startTime = System.currentTimeMillis();
Arrays.sort(myArray);
long endTime = System.currentTimeMillis();
System.out.println(
"Time take in serial: "+
(endTime-startTime)/1000.0);

Double [] myArray2 = new Double[1];
myArray2 = arraySource.toArray(myArray);
startTime = System.currentTimeMillis();
Arrays.parallelSort(myArray2);
endTime = System.currentTimeMillis();
System.out.println(
"Time take in parallel: "+
(endTime-startTime)/1000.0);

}
}

性能测试结果如下:

随着集合元素增多,并行sort性能要高。