Files
jekyll/benchmark/find-filter-vs-where-first-filters.rb
Josh Soref 4fbbefeb7e Spelling (#8661)
* spelling: always

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: apostrophe

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: articles

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: bajillion

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: bandwidth

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: compatibilize

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: congratulations

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: consistent

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: containing

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: correspondents

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: debuggability

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: definitions

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: engine

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: expectations

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: framework

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: gallery

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: github

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: gitlab

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: hesitant

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: hesitate

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: highlighter

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: installation

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: internal

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: kramdown

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: link

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: markdown

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: markdownify

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: metadata

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: multiple

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: object

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: overridden

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: paths

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: positions

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: powershell

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: proceeding

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: pygments settings

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: referencing

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: retrieve

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: separating

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: several

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: specific

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: suppress

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: upgrading

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: variable

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: variables

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: whitespace

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: with

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2021-05-14 21:18:13 +02:00

50 lines
1.3 KiB
Ruby
Executable File

#!/usr/bin/env ruby
# frozen_string_literal: true
require 'benchmark/ips'
require_relative '../lib/jekyll'
puts ''
print 'Setting up... '
SITE = Jekyll::Site.new(
Jekyll.configuration({
"source" => File.expand_path("../docs", __dir__),
"destination" => File.expand_path("../docs/_site", __dir__),
"disable_disk_cache" => true,
"quiet" => true,
})
)
TEMPLATE_1 = Liquid::Template.parse(<<~HTML)
{%- assign doc = site.documents | where: 'url', '/docs/assets/' | first -%}
{{- doc.title -}}
HTML
TEMPLATE_2 = Liquid::Template.parse(<<~HTML)
{%- assign doc = site.documents | find: 'url', '/docs/assets/' -%}
{{- doc.title -}}
HTML
[:reset, :read, :generate].each { |phase| SITE.send(phase) }
puts 'done.'
puts 'Testing... '
puts " #{'where + first'.cyan} results in #{TEMPLATE_1.render(SITE.site_payload).inspect.green}"
puts " #{'find'.cyan} results in #{TEMPLATE_2.render(SITE.site_payload).inspect.green}"
if TEMPLATE_1.render(SITE.site_payload) == TEMPLATE_2.render(SITE.site_payload)
puts 'Success! Proceeding to run benchmarks.'.green
puts ''
else
puts 'Something went wrong. Aborting.'.magenta
puts ''
return
end
Benchmark.ips do |x|
x.report('where + first') { TEMPLATE_1.render(SITE.site_payload) }
x.report('find') { TEMPLATE_2.render(SITE.site_payload) }
x.compare!
end