Last active
March 15, 2019 03:57
-
-
Save PeterJohnson/a1141ce77b3ceed3fdc77c447bb0935c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public static double slowString(); | |
Code: | |
0: invokestatic #2 // Method java/lang/System.currentTimeMillis:()J | |
3: l2d | |
4: ldc2_w #3 // double 1000.0d | |
7: ddiv | |
8: dstore_0 | |
9: getstatic #5 // Field m_a:D | |
12: getstatic #6 // Field m_b:D | |
15: getstatic #7 // Field m_c:D | |
18: getstatic #8 // Field m_d:D | |
21: getstatic #9 // Field m_e:D | |
24: getstatic #10 // Field m_f:D | |
27: getstatic #11 // Field m_g:D | |
30: getstatic #12 // Field m_h:D | |
33: getstatic #13 // Field m_i:D | |
36: invokedynamic #14, 0 // InvokeDynamic #0:makeConcatWithConstants:(DDDDDDDDD)Ljava/lang/String; | |
41: astore_2 | |
42: invokestatic #2 // Method java/lang/System.currentTimeMillis:()J | |
45: l2d | |
46: ldc2_w #3 // double 1000.0d | |
49: ddiv | |
50: dstore_3 | |
51: getstatic #15 // Field m_output:Ljava/lang/String; | |
54: aload_2 | |
55: invokedynamic #16, 0 // InvokeDynamic #1:makeConcatWithConstants:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; | |
60: putstatic #15 // Field m_output:Ljava/lang/String; | |
63: dload_3 | |
64: dload_0 | |
65: dsub | |
66: dreturn |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public static double slowString(); | |
Code: | |
0: invokestatic #2 // Method java/lang/System.currentTimeMillis:()J | |
3: l2d | |
4: ldc2_w #3 // double 1000.0d | |
7: ddiv | |
8: dstore_0 | |
9: new #5 // class java/lang/StringBuilder | |
12: dup | |
13: invokespecial #6 // Method java/lang/StringBuilder."<init>":()V | |
16: ldc #7 // String Slow me down, m_a: | |
18: invokevirtual #8 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
21: getstatic #9 // Field m_a:D | |
24: invokevirtual #10 // Method java/lang/StringBuilder.append:(D)Ljava/lang/StringBuilder; | |
27: ldc #11 // String , m_b: | |
29: invokevirtual #8 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
32: getstatic #12 // Field m_b:D | |
35: invokevirtual #10 // Method java/lang/StringBuilder.append:(D)Ljava/lang/StringBuilder; | |
38: ldc #11 // String , m_b: | |
40: invokevirtual #8 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
43: getstatic #13 // Field m_c:D | |
46: invokevirtual #10 // Method java/lang/StringBuilder.append:(D)Ljava/lang/StringBuilder; | |
49: ldc #11 // String , m_b: | |
51: invokevirtual #8 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
54: getstatic #14 // Field m_d:D | |
57: invokevirtual #10 // Method java/lang/StringBuilder.append:(D)Ljava/lang/StringBuilder; | |
60: ldc #11 // String , m_b: | |
62: invokevirtual #8 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
65: getstatic #15 // Field m_e:D | |
68: invokevirtual #10 // Method java/lang/StringBuilder.append:(D)Ljava/lang/StringBuilder; | |
71: ldc #11 // String , m_b: | |
73: invokevirtual #8 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
76: getstatic #16 // Field m_f:D | |
79: invokevirtual #10 // Method java/lang/StringBuilder.append:(D)Ljava/lang/StringBuilder; | |
82: ldc #11 // String , m_b: | |
84: invokevirtual #8 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
87: getstatic #17 // Field m_g:D | |
90: invokevirtual #10 // Method java/lang/StringBuilder.append:(D)Ljava/lang/StringBuilder; | |
93: ldc #11 // String , m_b: | |
95: invokevirtual #8 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
98: getstatic #18 // Field m_h:D | |
101: invokevirtual #10 // Method java/lang/StringBuilder.append:(D)Ljava/lang/StringBuilder; | |
104: ldc #11 // String , m_b: | |
106: invokevirtual #8 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
109: getstatic #19 // Field m_i:D | |
112: invokevirtual #10 // Method java/lang/StringBuilder.append:(D)Ljava/lang/StringBuilder; | |
115: invokevirtual #20 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; | |
118: astore_2 | |
119: invokestatic #2 // Method java/lang/System.currentTimeMillis:()J | |
122: l2d | |
123: ldc2_w #3 // double 1000.0d | |
126: ddiv | |
127: dstore_3 | |
128: new #5 // class java/lang/StringBuilder | |
131: dup | |
132: invokespecial #6 // Method java/lang/StringBuilder."<init>":()V | |
135: getstatic #21 // Field m_output:Ljava/lang/String; | |
138: invokevirtual #8 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
141: aload_2 | |
142: invokevirtual #8 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
145: ldc #22 // String \n | |
147: invokevirtual #8 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; | |
150: invokevirtual #20 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; | |
153: putstatic #21 // Field m_output:Ljava/lang/String; | |
156: dload_3 | |
157: dload_0 | |
158: dsub | |
159: dreturn |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class Slow3 { | |
private static double freememory = 0.0; | |
private static double m_a = 1.0; | |
private static double m_b = 2.0; | |
private static double m_c = 3.0; | |
private static double m_d = 4.0; | |
private static double m_e = 5.0; | |
private static double m_f = 6.0; | |
private static double m_g = 7.0; | |
private static double m_h = 8.0; | |
private static double m_i = 9.0; | |
private static String m_output; | |
public static double slowString() { | |
double start = System.currentTimeMillis() / 1000.0; | |
String fred; | |
fred = "Slow me down" + ", m_a: " + m_a + ", m_b: " + m_b + ", m_b: " + m_c + ", m_b: " + m_d + ", m_b: " + m_e | |
+ ", m_b: " + m_f + ", m_b: " + m_g + ", m_b: " + m_h + ", m_b: " + m_i; | |
double end = System.currentTimeMillis() / 1000.0; | |
m_output += fred + "\n"; | |
return end - start; | |
} | |
public static double fastString() { | |
double start = System.currentTimeMillis() / 1000.0; | |
StringBuilder joe = new StringBuilder(256); | |
joe.append("Don't slow me down"); | |
joe.append(", m_a: ").append(m_a); | |
joe.append(", m_b: ").append(m_b); | |
joe.append(", m_c: ").append(m_c); | |
joe.append(", m_d: ").append(m_d); | |
joe.append(", m_e: ").append(m_e); | |
joe.append(", m_f: ").append(m_f); | |
joe.append(", m_g: ").append(m_g); | |
joe.append(", m_h: ").append(m_h); | |
joe.append(", m_i: ").append(m_i); | |
double end = System.currentTimeMillis() / 1000.0; | |
m_output += joe.toString() + "\n"; | |
return end - start; | |
} | |
public static void main(String[] args) { | |
m_output = ""; | |
double f = fastString(); | |
double t = slowString(); | |
double t2 = slowString(); | |
m_e = 5.5; | |
m_f = 4.2; | |
m_c = 2.0; | |
double t3 = slowString(); | |
m_output += " fast time: " + f + "\n"; | |
m_output += " slow time: " + t + "\n"; | |
m_output += " slow time (again): " + t2 + "\n"; | |
m_output += " slow time (after changing): " + t3 + "\n"; | |
System.out.println(m_output); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment