Sha256: b96d8b37c9bcad7b7bbe46831421cc2d9bc92656d40696323ad9be209c9e8afb

Contents?: true

Size: 899 Bytes

Versions: 1

Compression:

Stored size: 899 Bytes

Contents

require 'benchmark/ips'
require 'trenni/parsers'
require 'trenni/entities'

require 'ruby-prof'

RSpec.shared_context "profile" do
	before(:all) do
		RubyProf.start
	end
	
	after(:all) do
		result = RubyProf.stop
		
		# Print a flat profile to text
		printer = RubyProf::FlatPrinter.new(result)
		printer.print(STDOUT)
	end
end

RSpec.describe Trenni::Parsers do
	# include_context "profile"
	
	let(:xhtml_path) {File.expand_path('corpus/large.xhtml', __dir__)}
	let(:xhtml_buffer) {Trenni::FileBuffer.new(xhtml_path)}
	let(:entities) {Trenni::Entities::HTML5}
	
	it "should be fast to parse large documents" do
		Benchmark.ips do |x|
			x.report("Large Document") do |times|
				delegate = Trenni::ParseDelegate.new
				
				while (times -= 1) >= 0
					Trenni::Parsers.parse_markup(xhtml_buffer, delegate, entities)
					
					delegate.events.clear
				end
			end
			
			x.compare!
		end
	end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
trenni-2.0.1 spec/trenni/parsers_performance_spec.rb