comparison piecrust/rendering.py @ 803:bf9f4e55f751

rendering: Separate performance timers for renering segments and layouts.
author Ludovic Chabant <ludovic@chabant.com>
date Thu, 29 Sep 2016 21:59:20 -0700
parents 6d8fe8e93a91
children 10c482d57c79
comparison
equal deleted inserted replaced
802:0da1207472d3 803:bf9f4e55f751
277 for seg_name, seg in page.segments.items(): 277 for seg_name, seg in page.segments.items():
278 seg_text = '' 278 seg_text = ''
279 for seg_part in seg.parts: 279 for seg_part in seg.parts:
280 part_format = seg_part.fmt or format_name 280 part_format = seg_part.fmt or format_name
281 try: 281 try:
282 with app.env.timerScope(engine.__class__.__name__): 282 with app.env.timerScope(
283 engine.__class__.__name__ + '_segment'):
283 part_text = engine.renderSegmentPart( 284 part_text = engine.renderSegmentPart(
284 page.path, seg_part, page_data) 285 page.path, seg_part, page_data)
285 except TemplatingError as err: 286 except TemplatingError as err:
286 err.lineno += seg_part.line 287 err.lineno += seg_part.line
287 raise err 288 raise err
322 _, engine_name = os.path.splitext(full_names[0]) 323 _, engine_name = os.path.splitext(full_names[0])
323 engine_name = engine_name.lstrip('.') 324 engine_name = engine_name.lstrip('.')
324 engine = get_template_engine(page.app, engine_name) 325 engine = get_template_engine(page.app, engine_name)
325 326
326 try: 327 try:
327 with page.app.env.timerScope(engine.__class__.__name__): 328 with page.app.env.timerScope(engine.__class__.__name__ + '_layout'):
328 output = engine.renderFile(full_names, layout_data) 329 output = engine.renderFile(full_names, layout_data)
329 except TemplateNotFoundError as ex: 330 except TemplateNotFoundError as ex:
330 logger.exception(ex) 331 logger.exception(ex)
331 msg = "Can't find template for page: %s\n" % page.path 332 msg = "Can't find template for page: %s\n" % page.path
332 msg += "Looked for: %s" % ', '.join(full_names) 333 msg += "Looked for: %s" % ', '.join(full_names)