7
7
public class GenReport {
8
8
public void gen () throws Exception {
9
9
File dir = new File ("/Users/wenshao/Work/git/fastjson2/docs/benchmark/" );
10
- File file = new File (dir , "benchmark_2.0.33_raw .md" );
11
- File outFile = new File (dir , "benchmark_2.0.33 .md" );
10
+ File file = new File (dir , "benchmark_2.0.34_raw .md" );
11
+ File outFile = new File (dir , "benchmark_2.0.34 .md" );
12
12
13
13
Map <String , BenchmarkResult > benchResults = new LinkedHashMap <>();
14
14
@@ -36,6 +36,7 @@ private static void gen(
36
36
Map <String , BenchmarkResult > benchResults
37
37
) throws FileNotFoundException {
38
38
PrintStream out = new PrintStream (new FileOutputStream (outFile ));
39
+ int h1 = 0 ;
39
40
for (BenchmarkResult benchmarkResult : benchResults .values ()) {
40
41
if (benchmarkResult .libraryResults .size () == 4 ) {
41
42
LibResult fastjson2 = benchmarkResult .libraryResults .get ("fastjson2" );
@@ -119,7 +120,7 @@ private static void gen(
119
120
}
120
121
}
121
122
122
- out .println ("## " + benchmarkResult .benchmarkCase );
123
+ out .println ("## " + (++ h1 ) + " " + benchmarkResult .benchmarkCase );
123
124
124
125
LibResult firLib = benchmarkResult .libraryResults .values ().iterator ().next ();
125
126
Set <String > jdks = firLib .scores .keySet ();
@@ -138,6 +139,7 @@ private static void gen(
138
139
out .print ("|" );
139
140
out .println ();
140
141
142
+ Set <String > eccWrited = new HashSet <>();
141
143
for (String jdk : jdks ) {
142
144
double firstScore = benchmarkResult .libraryResults .values ().iterator ().next ().scores .get (jdk );
143
145
@@ -149,9 +151,17 @@ private static void gen(
149
151
out .print (" | " );
150
152
} else {
151
153
String ecs = jdk .substring (0 , p );
152
- out .print (ecs );
154
+
155
+ if (eccWrited .add (ecs )) {
156
+ out .print (ecs );
157
+ }
158
+
153
159
out .print (" | " );
154
- out .print (jdk .substring (p + 1 ));
160
+ String jdkinfo = jdk .substring (p + 1 );
161
+ if (jdkinfo .startsWith ("graalvm-jdk-" )) {
162
+ jdkinfo = "graalvm_" + jdkinfo .substring ("graalvm-jdk-" .length ());
163
+ }
164
+ out .print (jdkinfo );
155
165
}
156
166
157
167
int i = 0 ;
@@ -170,6 +180,49 @@ private static void gen(
170
180
}
171
181
172
182
out .println ();
183
+
184
+ LinkedHashMap <String , String []> graalvm17_jdks = new LinkedHashMap <>();
185
+ String jdk17 = null , graalvm17 = null ;
186
+ String jdk17_info = null , graalvm17_info = null ;
187
+ for (String jdk : jdks ) {
188
+ int p = jdk .indexOf ('-' );
189
+ if (p == -1 ) {
190
+ continue ;
191
+ }
192
+
193
+ String ecs = jdk .substring (0 , p );
194
+ String [] ecs_jdk17s = graalvm17_jdks .get (ecs );
195
+ if (ecs_jdk17s == null ) {
196
+ ecs_jdk17s = new String [2 ];
197
+ graalvm17_jdks .put (ecs , ecs_jdk17s );
198
+ }
199
+
200
+ String jdkinfo = jdk .substring (p + 1 );
201
+ if (jdkinfo .startsWith ("jdk-17." )) {
202
+ jdk17 = jdk ;
203
+ jdk17_info = jdkinfo ;
204
+ ecs_jdk17s [0 ] = jdk ;
205
+ } else if (jdkinfo .startsWith ("graalvm-jdk-17." )) {
206
+ graalvm17 = jdk ;
207
+ graalvm17_info = jdkinfo ;
208
+ ecs_jdk17s [1 ] = jdk ;
209
+ }
210
+ }
211
+
212
+ if (jdk17 != null && graalvm17 != null ) {
213
+ out .println ();
214
+ out .println ("### " + h1 + ".1 jdk17 vs graalvm17" );
215
+ out .println ("| ecs | library | " + jdk17_info + " | " + graalvm17_info + " | delta |" );
216
+ out .println ("|-----|-----|-----|-----|-----|" );
217
+ for (LibResult libResult : benchmarkResult .libraryResults .values ()) {
218
+ for (Map .Entry <String , String []> entry : graalvm17_jdks .entrySet ()) {
219
+ Double score_jdk17 = libResult .scores .get (entry .getValue ()[0 ]);
220
+ Double score_graalvm17 = libResult .scores .get (entry .getValue ()[1 ]);
221
+ double percent = (score_graalvm17 - score_jdk17 ) / score_jdk17 ;
222
+ out .println ("| " + entry .getKey () + " | " + libResult .library + " | " + score_jdk17 + " | " + score_graalvm17 + " | " + new DecimalFormat ("#,##0.##%" ).format (percent ) + " |" );
223
+ }
224
+ }
225
+ }
173
226
}
174
227
out .close ();
175
228
}
0 commit comments