5.1 Java性能测量

对100 000 个数字列表进行排序。

  1. package optjava.jmh;
  2. import java.util.ArrayList;
  3. import java.util.Collections;
  4. import java.util.List;
  5. import java.util.Random;
  6. // tag::CLASSIC_SORT[]
  7. public class ClassicSort {
  8. private static final int N = 1_000;
  9. private static final int I = 150_000;
  10. private static final List<Integer> testData = new ArrayList<>();
  11. public static void main(String[] args) {
  12. Random randomGenerator = new Random();
  13. for (int i = 0; i < N; i++) {
  14. testData.add(randomGenerator.nextInt(Integer.MAX_VALUE));
  15. }
  16. System.out.println("Testing Sort Algorithm");
  17. double startTime = System.nanoTime();
  18. for (int i = 0; i < I; i++) {
  19. List<Integer> copy = new ArrayList<Integer>(testData);
  20. Collections.sort(copy);
  21. }
  22. double endTime = System.nanoTime();
  23. double timePerOperation = ((endTime - startTime) / (1_000_000_000L * I));
  24. System.out.println("Result: " + (1 / timePerOperation) + " op/s");
  25. }
  26. }
  27. // end::CLASSIC_SORT[]