Use compiled Javascript bytecode, 3 times faster than interpreting
Use compiled Javascript bytecode, 3 times faster than interpreting

Rendering a page with 200 posts now takes 430 ms (compiled Javascript,
Rhino optimization level 9), instead of 1500 ms (interpreted mode).

Details:
Optimized code: (timed with Twitter Ostrich)
layoutPage_msec: (average=529, count=10, maximum=1418, minimum=316,
p25=316, p50=386, p75=576, p90=637, p95=1418, p99=1418, p999=1418,
p9999=1418, sum=5293)
markdownToSafeHtml_msec: (average=1, count=2000, maximum=386, minimum=1,
p25=1, p50=1, p75=1, p90=2, p95=3, p99=8, p999=212, p9999=386, sum=3449)

Old slow code:
layoutPage_msec: (average=1581, count=10, maximum=2116, minimum=1283,
p25=1418, p50=1418, p75=1733, p90=1733, p95=2116, p99=2116, p999=2116,
p9999=2116, sum=15815)
markdownToSafeHtml_msec: (average=6, count=2000, maximum=286, minimum=5,
p25=6, p50=6, p75=7, p90=8, p95=9, p99=17, p999=38, p9999=286,
sum=13600)

And if we remove the slow outlier (JIT compilation?), layoutPage_msec
average becomes:
  (15815 - 2116) / 9.0 = 1522.1  # old slow
  (5293 - 1418) / 9.0 = 430.56  (28% of 1522)  # new optimized

debiki/debiki-server-old,debiki/debiki-server-old,debiki/debiki-server-old,debiki/debiki-server-old