SHARE
TWEET

Vararg Perf

a guest Aug 19th, 2019 70 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package org.logicmoo.translate.bcel;
  2.  
  3. /*
  4. On JDK8
  5.  
  6.  java org.logicmoo.translate.bcel.VarargsPerf
  7.  
  8. novarg1 2814
  9. vararg1 2748
  10. novarg2 2835
  11. vararg2 3156
  12. novarg1 2809
  13. vararg1 3072
  14. novarg2 2808
  15. vararg2 3022
  16. novarg1 2821
  17. vararg1 3085
  18. novarg2 2823
  19. vararg2 3049
  20. novarg1 2823
  21. vararg1 3083
  22. novarg2 2804
  23. vararg2 3017
  24. novarg1 2817
  25. vararg1 3100
  26. novarg2 2800
  27. vararg2 3035
  28. novarg1 2840
  29. vararg1 3092
  30. novarg2 2791
  31. vararg2 3032
  32. novarg1 2845
  33. vararg1 3040
  34. novarg2 2827
  35. vararg2 3010
  36. novarg1 2851
  37. vararg1 3067
  38. novarg2 2802
  39. vararg2 3115
  40. novarg1 2827
  41. vararg1 3112
  42. novarg2 2985
  43. vararg2 3063
  44. novarg1 2827
  45. vararg1 3066
  46. novarg2 2813
  47. vararg2 3028
  48.  
  49.  *
  50.  */
  51. public class VarargsPerf {
  52.  
  53.     public final static void main(String[] args) {
  54.  
  55.         int n = 10000000;
  56.         int m = 2;
  57.         String p0 = new String("");
  58.         String p1 = new String("");
  59.         String p2 = new String("");
  60.         String p3 = "a3";
  61.         String p4 = new String("");
  62.         long t;
  63.  
  64.         for (int ij = 0; ij < 10; ij++) {
  65.             t = System.currentTimeMillis();
  66.             for (int i = 0; i < n; i++) {
  67.                 for (int j = 0; j < m; j++) {
  68.                     nonvararg(p0, p1, p2, p3, p4);
  69.                 }
  70.             }
  71.             timeUsed("novarg1 ", t);
  72.  
  73.             t = System.currentTimeMillis();
  74.             for (int i = 0; i < n; i++) {
  75.                 for (int j = 0; j < m; j++) {
  76.                     vararg(p0, p1, p2, p3, p4);
  77.                 }
  78.             }
  79.             timeUsed("vararg1 ", t);
  80.  
  81.             t = System.currentTimeMillis();
  82.             for (int i = 0; i < n; i++) {
  83.                 for (int j = 0; j < m; j++) {
  84.                     nonvararg(p0, p1, p2, p3, p4);
  85.                 }
  86.             }
  87.             timeUsed("novarg2 ", t);
  88.  
  89.             t = System.currentTimeMillis();
  90.             for (int i = 0; i < n; i++) {
  91.                 for (int j = 0; j < m; j++) {
  92.                     vararg(p0, p1, p2, p3, p4);
  93.                 }
  94.             }
  95.             timeUsed("vararg2 ", t);
  96.         }
  97.     }
  98.  
  99.     final static void timeUsed(String string, long t) {
  100.         long used = System.currentTimeMillis() - t;
  101.         System.err.println(string + used);
  102.     }
  103.  
  104.     static String s0, s1, s2, s3, s4;
  105.     static String[] saveIt;
  106.  
  107.     public final static String fooE(String string) {
  108.         return string.toLowerCase();
  109.     }
  110.  
  111.     final static void nonvararg(String a0, String a1, String a2, String a3, String a4) {
  112.         s0 = fooE(a0);
  113.         elsewhereNVA(a4, a3, a2, a1, a0);
  114.         s1 = fooE(a1);
  115.         elsewhereNVA(a3, a4, a2, a1, a0);
  116.         s2 = fooE(a2);
  117.         elsewhereNVA(a3, a4, a1, a2, a0);
  118.         s3 = fooE(a3);
  119.         elsewhereNVA(a0, a3, a2, a1, a4);
  120.         s4 = fooE(a4);
  121.         elsewhereNVA(a4, a1, a2, a3, a0);
  122.  
  123.         s0 = fooE(a0);
  124.         s1 = fooE(a1);
  125.         s2 = fooE(a2);
  126.         s3 = fooE(a3);
  127.         s4 = fooE(a4);
  128.  
  129.     }
  130.  
  131.     final static void vararg(String... a) {
  132.         s0 = fooE(a[0]);
  133.         elsewhereVA(a[4], a[3], a[2], a[1], a[0]);
  134.         s1 = fooE(a[1]);
  135.         elsewhereVA(a[3], a[4], a[2], a[1], a[0]);
  136.         s2 = fooE(a[2]);
  137.         elsewhereVA(a[3], a[4], a[1], a[2], a[0]);
  138.         s3 = fooE(a[3]);
  139.         elsewhereVA(a[0], a[3], a[2], a[1], a[4]);
  140.         s4 = fooE(a[4]);
  141.         elsewhereVA(a[4], a[1], a[2], a[3], a[0]);
  142.  
  143.         s0 = fooE(a[0]);
  144.         s1 = fooE(a[1]);
  145.         s2 = fooE(a[2]);
  146.         s3 = fooE(a[3]);
  147.         s4 = fooE(a[4]);
  148.     }
  149.  
  150.     final static void elsewhereVA(String... a) {
  151.         s0 = fooE(a[0]);
  152.         s1 = fooE(a[1]);
  153.         s2 = fooE(a[2]);
  154.         s3 = fooE(a[3]);
  155.         s4 = fooE(a[4]);
  156.     }
  157.  
  158.     final static void elsewhereNVA(String a0, String a1, String a2, String a3, String a4) {
  159.         s0 = fooE(a0);
  160.         s1 = fooE(a1);
  161.         s2 = fooE(a2);
  162.         s3 = fooE(a3);
  163.         s4 = fooE(a4);
  164.     }
  165.  
  166. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top