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,7 +20,9 @@ module Jekyll
def render(*args) def render(*args)
measure_time do measure_time do
measure_bytes do measure_bytes do
@template.render(*args) measure_counts do
@template.render(*args)
end
end end
end end
end end
@ -29,7 +31,9 @@ module Jekyll
def render!(*args) def render!(*args)
measure_time do measure_time do
measure_bytes do measure_bytes do
@template.render!(*args) measure_counts do
@template.render!(*args)
end
end end
end end
end end
@ -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)