fork download
  1. /*
  2.  java.exe -Xms1024m A
  3.  
  4.  Jagged unopt time 85.958287 msc
  5.  Jagged opt time 602.58672 msc
  6.  Simple unopt time 69.588572 msc
  7.  Simple opt time 412.327974 msc
  8. */
  9. class A {
  10.  
  11. private final static int n = 8000;
  12. private final static int g[][] = new int[n][n];
  13. private final static int a[] = new int[n*n];
  14.  
  15. public static void main(String[] args) throws Exception {
  16.  
  17. for(int i=0;i<10;i++) {
  18. testRun1(args);
  19. testRun2(args);
  20. testRun3(args);
  21. testRun4(args);
  22. System.out.println();
  23. if(i==3) Thread.sleep(1000);
  24. }
  25. }
  26. public static void testRun1(String[] args) {
  27. long st, en;
  28.  
  29. // one
  30. st = System.nanoTime();
  31. for(int i = 0; i < n; i++) {
  32. for(int j = 0; j < n; j++) {
  33. g[i][j] = i + j + i*n + j*n;
  34. }
  35. }
  36. en = System.nanoTime();
  37. System.out.println("Jagged unopt time " + (en - st)/1000000.d + " msc");
  38. }
  39. public static void testRun2(String[] args) {
  40. long st, en;
  41.  
  42. // two
  43. st = System.nanoTime();
  44. for(int i = 0; i < n; i++) {
  45. g[i][i] = i + i + i*n + i*n;
  46. for(int j = 0; j < i; j++) {
  47. g[j][i] = g[i][j] = i + j + i*n + j*n;
  48. }
  49. }
  50. en = System.nanoTime();
  51. System.out.println("Jagged opt time " + (en - st)/1000000.d + " msc");
  52. }
  53.  
  54. public static void testRun3(String[] args) {
  55. long st, en;
  56.  
  57. // two
  58. st = System.nanoTime();
  59. for(int i = 0; i < n; i++) {
  60. final int in = i*n;
  61. for(int j = 0; j < n; j++) {
  62. final int jn = j*n;
  63. a[in + j] = in + j + i + jn;
  64. }
  65. }
  66. en = System.nanoTime();
  67. System.out.println("Simple unopt time " + (en - st)/1000000.d + " msc");
  68. }
  69.  
  70. public static void testRun4(String[] args) {
  71. long st, en;
  72.  
  73. // two
  74. st = System.nanoTime();
  75. for(int i = 0; i < n; i++) {
  76. final int in = i*n;
  77. a[in + i] = in + i + i + in;
  78. for(int j = 0; j < i; j++) {
  79. final int jn = j*n;
  80. a[jn + i] = a[in + j] = in + i + j + jn;
  81. }
  82. }
  83. en = System.nanoTime();
  84. System.out.println("Simple opt time " + (en - st)/1000000.d + " msc");
  85. }
  86. }
Runtime error #stdin #stdout #stderr 0.64s 380160KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at A.<clinit>(Main.java:13)