]> git.wincent.com - wikitext.git/blobdiff - benchmarks/NOTES.txt
Add ary_includes2, ary_includes3 functions
[wikitext.git] / benchmarks / NOTES.txt
index ad47d8783b0dd81d8e8dee7ba3614f22b9a22254..c6ab30e9148d26920bbcdab200f51eb1d1516de1 100644 (file)
@@ -16,6 +16,98 @@ After adding custom C replacement for Ruby Array class:
   short slab of ASCII text    3.400000   0.000000   3.400000 (  3.417410)
   short slab of UTF-8 text    6.290000   0.010000   6.300000 (  6.314861)
 
-  Biggest drain is st_init_strtable (42%), something to do with string
+  Biggest drain is st_init_strtable (42%), something to do with strings
   followed by 14% for rb_str_append
   (next_token function now up to 22%)
+
+After speeding up Ragel scanner with -G2 switch:
+
+  short slab of ASCII text    2.870000   0.000000   2.870000 (  2.929794)
+  short slab of UTF-8 text    5.390000   0.010000   5.400000 (  5.399399)
+
+After replacing many rb_str_append calls with rb_str_cat
+(for constant strings):
+
+  short slab of ASCII text    2.380000   0.010000   2.390000 (  2.461861)
+  short slab of UTF-8 text    4.860000   0.000000   4.860000 (  5.016289)
+
+More rb_str_append calls replaced with rb_str_cat (token text):
+
+  short slab of ASCII text    1.570000   0.010000   1.580000 (  1.705596)
+  short slab of UTF-8 text    3.280000   0.020000   3.300000 (  3.353919)
+
+After implementing profiling_parse method
+(to minimize noise in profile from "times" method):
+
+  short slab of ASCII text    1.490000   0.000000   1.490000 (  1.498188)
+  short slab of UTF-8 text    3.150000   0.010000   3.160000 (  3.266873)
+
+  Biggest drain still st_init_strtable (34.1%),
+  followed by rb_str_append (12.3%),
+  and rb_str_buf_cat (11.2%)
+  not clear whether a custom string implementation would help here
+  (next_token function currently accounts for 13.3%)
+
+New baseline after adding additional features (additional em and strong
+tokens, email address tokenization and autolinking, whitespace trimming
+for link components, optional options hash for parse method, automatic
+indentation, and indentation overrides):
+
+  short slab of ASCII text    1.620000   0.010000   1.630000 (  1.765099)
+  short slab of UTF-8 text    3.370000   0.010000   3.380000 (  3.561710)
+
+New baseline after adding more features and other changes (alternate
+pre/blockquote syntax, img tags, more Garbage Collection) but also
+improving performance due to removal of inappropriately inlined code:
+
+  short slab of ASCII text    1.980000   0.030000   2.010000 (  2.116161)
+  short slab of UTF-8 text    4.040000   0.050000   4.090000 (  4.471805)
+  longer slab of ASCII text  16.920000   0.150000  17.070000 ( 18.609802)
+  longer slab of UTF-8 text  50.460000   0.350000  50.810000 ( 53.719019)
+
+1.6 baseline:
+
+  short slab of ASCII text    2.010000   0.020000   2.030000 (  2.133733)
+  short slab of UTF-8 text    3.990000   0.040000   4.030000 (  4.174043)
+  longer slab of ASCII text  16.700000   0.120000  16.820000 ( 17.302634)
+  longer slab of UTF-8 text  50.010000   0.400000  50.410000 ( 54.708712)
+
+"str" branch improvements (commit 65abcb4):
+
+  short slab of ASCII text    1.550000   0.010000   1.560000 (  1.572018)
+  short slab of UTF-8 text    2.310000   0.020000   2.330000 (  2.352641)
+  longer slab of ASCII text  13.780000   0.100000  13.880000 ( 14.034015)
+  longer slab of UTF-8 text  23.150000   0.130000  23.280000 ( 23.505007)
+
+1.7 baseline:
+
+  short slab of ASCII text    1.380000   0.010000   1.390000 (  1.390273)
+  short slab of UTF-8 text    2.150000   0.010000   2.160000 (  2.196478)
+  longer slab of ASCII text  13.210000   0.080000  13.290000 ( 13.547195)
+  longer slab of UTF-8 text  23.510000   0.170000  23.680000 ( 23.882669)
+
+  19.9% next_token
+  14.9% Wikitext_parser_parse
+   9.5% __memcpy
+   7.4% ary_includes
+   6.9% ary_count
+   5.5% str_append
+   5.5% ary_push
+   4.0% wiki_start_para_if_necessary
+
+After switching to IN_EITHER_OF and IN_ANY_OF macros:
+
+  short slab of ASCII text    1.330000   0.010000   1.340000 (  1.353676)
+  short slab of UTF-8 text    2.120000   0.010000   2.130000 (  2.158128)
+  longer slab of ASCII text  12.350000   0.070000  12.420000 ( 12.508288)
+  longer slab of UTF-8 text  22.810000   0.150000  22.960000 ( 23.160102)
+
+  21.9% next_token
+  13.5% Wikitext_parser_parse
+   9.5% __memcpy
+   7.1% ary_count
+   5.6% str_append
+   5.4% ary_push
+   4.4% wiki_pop_excess_elements
+   4.3% ary_entry
+   4.1% wiki_start_para_if_necessary