Mercurial > piecrust2
diff piecrust/rendering.py @ 586:59268b4d8c71
bake: Add new performance timers.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sun, 10 Jan 2016 10:51:11 -0800 |
parents | 683be25cbdb2 |
children | 33ab9badfd7a |
line wrap: on
line diff
--- a/piecrust/rendering.py Sat Jan 02 16:39:26 2016 -0800 +++ b/piecrust/rendering.py Sun Jan 10 10:51:11 2016 -0800 @@ -234,7 +234,8 @@ eis.pushPage(ctx.page, ctx) try: # Build the data for both segment and layout rendering. - page_data = _build_render_data(ctx) + with ctx.app.env.timerScope("BuildRenderData"): + page_data = _build_render_data(ctx) # Render content segments. ctx.setCurrentPass(PASS_FORMATTING) @@ -242,16 +243,17 @@ save_to_fs = True if ctx.app.env.fs_cache_only_for_main_page and not eis.is_main_page: save_to_fs = False - if repo and not ctx.force_render: - render_result = repo.get( - ctx.uri, - lambda: _do_render_page_segments(ctx.page, page_data), - fs_cache_time=ctx.page.path_mtime, - save_to_fs=save_to_fs) - else: - render_result = _do_render_page_segments(ctx.page, page_data) - if repo: - repo.put(ctx.uri, render_result, save_to_fs) + with ctx.app.env.timerScope("PageRenderSegments"): + if repo and not ctx.force_render: + render_result = repo.get( + ctx.uri, + lambda: _do_render_page_segments(ctx.page, page_data), + fs_cache_time=ctx.page.path_mtime, + save_to_fs=save_to_fs) + else: + render_result = _do_render_page_segments(ctx.page, page_data) + if repo: + repo.put(ctx.uri, render_result, save_to_fs) # Render layout. page = ctx.page @@ -261,8 +263,11 @@ layout_name = page.source.config.get('default_layout', 'default') null_names = ['', 'none', 'nil'] if layout_name not in null_names: - build_layout_data(page, page_data, render_result['segments']) - layout_result = _do_render_layout(layout_name, page, page_data) + with ctx.app.env.timerScope("BuildRenderData"): + build_layout_data(page, page_data, render_result['segments']) + + with ctx.app.env.timerScope("PageRenderLayout"): + layout_result = _do_render_layout(layout_name, page, page_data) else: layout_result = { 'content': render_result['segments']['content'],