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

View File

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