mirror of
https://github.com/Shopify/liquid.git
synced 2026-09-12 23:40:45 -07:00
44 lines
654 B
Ruby
44 lines
654 B
Ruby
# frozen_string_literal: true
|
|
|
|
require "benchmark/ips"
|
|
|
|
# benchmark liquid lexing
|
|
|
|
require 'liquid'
|
|
|
|
RubyVM::YJIT.enable
|
|
|
|
EXPRESSIONS = [
|
|
"foo[1..2].baz",
|
|
"12.0",
|
|
"foo.bar.based",
|
|
"21 - 62",
|
|
"foo.bar.baz",
|
|
"foo > 12",
|
|
"foo < 12",
|
|
"foo <= 12",
|
|
"foo >= 12",
|
|
"foo <> 12",
|
|
"foo == 12",
|
|
"foo != 12",
|
|
"foo contains 12",
|
|
"foo contains 'bar'",
|
|
"foo != 'bar'",
|
|
"'foo' contains 'bar'",
|
|
'234089',
|
|
"foo | default: -1",
|
|
]
|
|
|
|
Benchmark.ips do |x|
|
|
x.config(time: 10, warmup: 5)
|
|
|
|
x.report("Liquid::Lexer#tokenize") do
|
|
EXPRESSIONS.each do |expr|
|
|
l = Liquid::Lexer.new(expr)
|
|
l.tokenize
|
|
end
|
|
end
|
|
|
|
x.compare!
|
|
end
|