77public class GenReport {
88 public void gen () throws Exception {
99 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" );
1212
1313 Map <String , BenchmarkResult > benchResults = new LinkedHashMap <>();
1414
@@ -36,6 +36,7 @@ private static void gen(
3636 Map <String , BenchmarkResult > benchResults
3737 ) throws FileNotFoundException {
3838 PrintStream out = new PrintStream (new FileOutputStream (outFile ));
39+ int h1 = 0 ;
3940 for (BenchmarkResult benchmarkResult : benchResults .values ()) {
4041 if (benchmarkResult .libraryResults .size () == 4 ) {
4142 LibResult fastjson2 = benchmarkResult .libraryResults .get ("fastjson2" );
@@ -119,7 +120,7 @@ private static void gen(
119120 }
120121 }
121122
122- out .println ("## " + benchmarkResult .benchmarkCase );
123+ out .println ("## " + (++ h1 ) + " " + benchmarkResult .benchmarkCase );
123124
124125 LibResult firLib = benchmarkResult .libraryResults .values ().iterator ().next ();
125126 Set <String > jdks = firLib .scores .keySet ();
@@ -138,6 +139,7 @@ private static void gen(
138139 out .print ("|" );
139140 out .println ();
140141
142+ Set <String > eccWrited = new HashSet <>();
141143 for (String jdk : jdks ) {
142144 double firstScore = benchmarkResult .libraryResults .values ().iterator ().next ().scores .get (jdk );
143145
@@ -149,9 +151,17 @@ private static void gen(
149151 out .print (" | " );
150152 } else {
151153 String ecs = jdk .substring (0 , p );
152- out .print (ecs );
154+
155+ if (eccWrited .add (ecs )) {
156+ out .print (ecs );
157+ }
158+
153159 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 );
155165 }
156166
157167 int i = 0 ;
@@ -170,6 +180,49 @@ private static void gen(
170180 }
171181
172182 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+ }
173226 }
174227 out .close ();
175228 }
0 commit comments