Measure the no. of times a template gets rendered (#7316)

Merge pull request 7316
This commit is contained in:
Ashwin Maroli 2018-10-28 15:34:27 +05:30 committed by jekyllbot
parent fbec40589d
commit 9152b1c9b8
2 changed files with 15 additions and 3 deletions

View File

@ -31,7 +31,6 @@ module Jekyll
end end
LiquidRenderer::File.new(self, filename).tap do LiquidRenderer::File.new(self, filename).tap do
@stats[filename] ||= new_profile_hash @stats[filename] ||= new_profile_hash
@stats[filename][:count] += 1
end end
end end
@ -43,6 +42,10 @@ module Jekyll
@stats[filename][:time] += time @stats[filename][:time] += time
end end
def increment_count(filename)
@stats[filename][:count] += 1
end
def stats_table(num_of_rows = 50) def stats_table(num_of_rows = 50)
LiquidRenderer::Table.new(@stats).to_s(num_of_rows) LiquidRenderer::Table.new(@stats).to_s(num_of_rows)
end end

View File

@ -20,19 +20,23 @@ module Jekyll
def render(*args) def render(*args)
measure_time do measure_time do
measure_bytes do measure_bytes do
measure_counts do
@template.render(*args) @template.render(*args)
end end
end end
end end
end
# This method simply 'rethrows any error' before attempting to render the template. # This method simply 'rethrows any error' before attempting to render the template.
def render!(*args) def render!(*args)
measure_time do measure_time do
measure_bytes do measure_bytes do
measure_counts do
@template.render!(*args) @template.render!(*args)
end end
end end
end end
end
def warnings def warnings
@template.warnings @template.warnings
@ -40,6 +44,11 @@ module Jekyll
private private
def measure_counts
@renderer.increment_count(@filename)
yield
end
def measure_bytes def measure_bytes
yield.tap do |str| yield.tap do |str|
@renderer.increment_bytes(@filename, str.bytesize) @renderer.increment_bytes(@filename, str.bytesize)