mirror of
https://github.com/discourse/discourse.git
synced 2024-12-02 14:03:58 +08:00
30990006a9
This reduces chances of errors where consumers of strings mutate inputs and reduces memory usage of the app. Test suite passes now, but there may be some stuff left, so we will run a few sites on a branch prior to merging
133 lines
5.2 KiB
Ruby
133 lines
5.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'benchmark/ips'
|
|
require File.expand_path('../../../../config/environment', __FILE__)
|
|
|
|
# set any flags here
|
|
# MiniRacer::Platform.set_flags! :noturbo
|
|
|
|
tests = [
|
|
["tiny post", "**hello**"],
|
|
["giant post", File.read("giant_post.md")],
|
|
["most features", File.read("most_features.md")],
|
|
["lots of mentions", File.read("lots_of_mentions.md")]
|
|
]
|
|
|
|
PrettyText.cook("")
|
|
PrettyText.v8.eval("window.commonmark = window.markdownit('commonmark')")
|
|
|
|
# Benchmark.ips do |x|
|
|
# x.report("markdown") do
|
|
# PrettyText.markdown("x")
|
|
# end
|
|
#
|
|
# x.report("cook") do
|
|
# PrettyText.cook("y")
|
|
# end
|
|
# end
|
|
#
|
|
# exit
|
|
|
|
Benchmark.ips do |x|
|
|
[true, false].each do |sanitize|
|
|
tests.each do |test, text|
|
|
x.report("#{test} sanitize: #{sanitize}") do
|
|
PrettyText.markdown(text, sanitize: sanitize)
|
|
end
|
|
end
|
|
end
|
|
|
|
tests.each do |test, text|
|
|
x.report("markdown it no extensions commonmark #{test}") do
|
|
PrettyText.v8.eval("window.commonmark.render(#{text.inspect})")
|
|
end
|
|
end
|
|
end
|
|
|
|
# 27-07-2017 - Sam's NUC
|
|
#
|
|
# v8 5.7
|
|
#
|
|
#
|
|
# tiny post sanitize: true
|
|
# 160.678 (±19.9%) i/s - 760.000 in 5.005630s
|
|
# giant post sanitize: true
|
|
# 132.195 (±14.4%) i/s - 649.000 in 5.042695s
|
|
# most features sanitize: true
|
|
# 56.205 (± 8.9%) i/s - 280.000 in 5.038138s
|
|
# lots of mentions sanitize: true
|
|
# 0.318 (± 0.0%) i/s - 2.000 in 6.293644s
|
|
# tiny post sanitize: false
|
|
# 404.304 (±20.8%) i/s - 1.920k in 5.019903s
|
|
# giant post sanitize: false
|
|
# 327.721 (±11.9%) i/s - 1.624k in 5.033749s
|
|
# most features sanitize: false
|
|
# 76.649 (±10.4%) i/s - 385.000 in 5.085552s
|
|
# lots of mentions sanitize: false
|
|
# 0.306 (± 0.0%) i/s - 2.000 in 6.525968s
|
|
# markdown it no extensions commonmark tiny post
|
|
# 5.871k (±19.1%) i/s - 28.544k in 5.073585s
|
|
# markdown it no extensions commonmark giant post
|
|
# 1.006k (±12.5%) i/s - 4.960k in 5.041623s
|
|
# markdown it no extensions commonmark most features
|
|
# 1.447k (± 8.9%) i/s - 7.205k in 5.029094s
|
|
# markdown it no extensions commonmark lots of mentions
|
|
# 1.962k (± 8.3%) i/s - 9.850k in 5.061684s
|
|
#
|
|
#
|
|
# v8 5.9
|
|
#
|
|
#
|
|
# tiny post sanitize: true
|
|
# 156.179 (±16.0%) i/s - 765.000 in 5.059401s
|
|
# giant post sanitize: true
|
|
# 129.972 (±10.8%) i/s - 650.000 in 5.071824s
|
|
# most features sanitize: true
|
|
# 54.960 (± 9.1%) i/s - 275.000 in 5.051284s
|
|
# lots of mentions sanitize: true
|
|
# 0.321 (± 0.0%) i/s - 2.000 in 6.251009s
|
|
# tiny post sanitize: false
|
|
# 431.159 (±10.4%) i/s - 2.166k in 5.085303s
|
|
# giant post sanitize: false
|
|
# 300.236 (±11.7%) i/s - 1.479k in 5.029557s
|
|
# most features sanitize: false
|
|
# 73.808 (±10.8%) i/s - 371.000 in 5.092310s
|
|
# lots of mentions sanitize: false
|
|
# 0.297 (± 0.0%) i/s - 2.000 in 6.729708s
|
|
# markdown it no extensions commonmark tiny post
|
|
# 6.421k (±13.0%) i/s - 32.012k in 5.084672s
|
|
# markdown it no extensions commonmark giant post
|
|
# 901.622 (± 9.2%) i/s - 4.452k in 5.016748s
|
|
# markdown it no extensions commonmark most features
|
|
# 1.410k (± 6.5%) i/s - 7.112k in 5.070053s
|
|
# markdown it no extensions commonmark lots of mentions
|
|
# 1.934k (± 6.4%) i/s - 9.672k in 5.025858s
|
|
#
|
|
# v8 noturbo 5.9
|
|
#
|
|
#
|
|
# tiny post sanitize: true
|
|
# 105.152 (±17.1%) i/s - 512.000 in 5.034419s
|
|
# giant post sanitize: true
|
|
# 97.002 (±12.4%) i/s - 480.000 in 5.038382s
|
|
# most features sanitize: true
|
|
# 46.355 (±12.9%) i/s - 228.000 in 5.009251s
|
|
# lots of mentions sanitize: true
|
|
# 0.278 (± 0.0%) i/s - 2.000 in 7.205837s
|
|
# tiny post sanitize: false
|
|
# 201.166 (±13.4%) i/s - 990.000 in 5.017725s
|
|
# giant post sanitize: false
|
|
# 174.212 (±10.9%) i/s - 867.000 in 5.040859s
|
|
# most features sanitize: false
|
|
# 60.272 (±14.9%) i/s - 295.000 in 5.029353s
|
|
# lots of mentions sanitize: false
|
|
# 0.309 (± 0.0%) i/s - 2.000 in 6.483433s
|
|
# markdown it no extensions commonmark tiny post
|
|
# 6.331k (±13.8%) i/s - 31.065k in 5.023613s
|
|
# markdown it no extensions commonmark giant post
|
|
# 1.045k (± 9.6%) i/s - 5.208k in 5.053733s
|
|
# markdown it no extensions commonmark most features
|
|
# 1.448k (± 6.7%) i/s - 7.239k in 5.024831s
|
|
# markdown it no extensions commonmark lots of mentions
|
|
# 1.986k (± 5.2%) i/s - 9.990k in 5.044624s
|