Code for a blogpost
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

140 lines
5.0 KiB

  1. package net.jrtechs;
  2. import java.sql.SQLOutput;
  3. import java.util.List;
  4. import java.util.Vector;
  5. import java.util.concurrent.ThreadLocalRandom;
  6. import java.util.stream.Collectors;
  7. import java.util.stream.IntStream;
  8. public class Test
  9. {
  10. public static void runDoNothingTest(int max, int incrementer)
  11. {
  12. WorkGenerator<Object> generator = new DoNothing<>();
  13. PythonGraphingConversion result = new PythonGraphingConversion();
  14. Vector<Work<Object>> workAll = new Vector<>();
  15. workAll.addAll(
  16. IntStream.range(0, max)
  17. .boxed()
  18. .map(i -> generator.generateWork(i))
  19. .collect(Collectors.toList())
  20. );
  21. GenericTester<Object> genObjectTester = new GenericTester<>();
  22. for(int i = 1; i <= max; i+= incrementer)
  23. {
  24. Vector<Work<Object>> work = new Vector<>(workAll.subList(0, i));
  25. Result res = genObjectTester.testAll(work);
  26. result.addPoint(res, i);
  27. }
  28. result.printPythonCode("Operational Overhead");
  29. }
  30. public static void sleepTest(int max, int incrementer)
  31. {
  32. WorkGenerator<Object> generator = new SleepWork<>();
  33. PythonGraphingConversion result = new PythonGraphingConversion();
  34. Vector<Work<Object>> workAll = new Vector<>();
  35. workAll.addAll(
  36. IntStream.range(0, max)
  37. .boxed()
  38. .map(i -> generator.generateWork(i))
  39. .collect(Collectors.toList())
  40. );
  41. GenericTester<Object> genObjectTester = new GenericTester<>();
  42. for(int i = 1; i <= max; i+= incrementer)
  43. {
  44. Vector<Work<Object>> work = new Vector<>(workAll.subList(0, i));
  45. Result res = genObjectTester.testAll(work);
  46. result.addPoint(res, i);
  47. }
  48. result.printPythonCode("Sleeping Tasks");
  49. }
  50. public static void arithmeticWork(int max, int incrementer)
  51. {
  52. WorkGenerator<Double> generator = new DoMaths<>();
  53. PythonGraphingConversion result = new PythonGraphingConversion();
  54. Vector<Work<Double>> workAll = new Vector<>();
  55. workAll.addAll(
  56. IntStream.range(0, max)
  57. .boxed()
  58. .map(i -> generator.generateWork(i*1.0))
  59. .collect(Collectors.toList())
  60. );
  61. GenericTester<Double> doubleGenericTester = new GenericTester<>();
  62. for(int i = 1; i <= max; i+= incrementer)
  63. {
  64. Vector<Work<Double>> work = new Vector<>(workAll.subList(0, i));
  65. Result res = doubleGenericTester.testAll(work);
  66. result.addPoint(res, i);
  67. }
  68. result.printPythonCode("Complex Maths");
  69. }
  70. public static void main(String[] arguments)
  71. {
  72. //sleepTest(50, 5);
  73. arithmeticWork(10000, 20);
  74. // runDoNothingTest(10000, 100);
  75. // Vector<Work<Object>> work = new Vector<>();
  76. // work.addAll(
  77. // IntStream.range(0, 100000).boxed()
  78. // .map(i -> new Work<Object>() {
  79. // @Override
  80. // Object runTask() {
  81. // //System.out.println("running task");
  82. // return i;
  83. // }
  84. // }
  85. // ).collect(Collectors.toList())
  86. // );
  87. // System.out.println(testAll(work));
  88. //
  89. // Vector<Work<Object>> work = new Vector<>();
  90. // work.addAll(
  91. // IntStream.range(0, 10000).boxed()
  92. // .map(i -> new Work<Object>() {
  93. // @Override
  94. // Object runTask() {
  95. // for(int z = 0; z < 10000; z++)
  96. // {
  97. // Object o = Math.sin(z * ThreadLocalRandom.current().nextDouble());
  98. // }
  99. // return ThreadLocalRandom.current().nextDouble() * Math.PI;
  100. // //return i;
  101. // }
  102. // }
  103. // ).collect(Collectors.toList())
  104. // );
  105. // GenericTester<Object> genericTester = new GenericTester<>();
  106. // System.out.println(genericTester.testAll(work));
  107. // Vector<Work<Object>> work = new Vector<>();
  108. // work.addAll(
  109. // IntStream.range(0, 10).boxed()
  110. // .map(i -> new Work<Object>() {
  111. // @Override
  112. // Object runTask() {
  113. // try {
  114. // Thread.sleep(500);
  115. // } catch (InterruptedException e) {
  116. // e.printStackTrace();
  117. // }
  118. // return ThreadLocalRandom.current().nextDouble() * Math.PI;
  119. // //return i;
  120. // }
  121. // }
  122. // ).collect(Collectors.toList())
  123. // );
  124. // System.out.println(testAllThree(work));
  125. }
  126. }