Mercurial > piecrust2
comparison piecrust/processing/worker.py @ 442:171dde4f61dc
performance: Add profiling to the asset pipeline workers.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sun, 28 Jun 2015 14:52:58 -0700 |
parents | 5ceb86818dc5 |
children | aefe70229fdd |
comparison
equal
deleted
inserted
replaced
441:dc8518c51cbe | 442:171dde4f61dc |
---|---|
21 split_processor_names_re = re.compile(r'[ ,]+') | 21 split_processor_names_re = re.compile(r'[ ,]+') |
22 re_ansicolors = re.compile('\033\\[\d+m') | 22 re_ansicolors = re.compile('\033\\[\d+m') |
23 | 23 |
24 | 24 |
25 def worker_func(wid, ctx): | 25 def worker_func(wid, ctx): |
26 if ctx.is_profiling: | |
27 try: | |
28 import cProfile as profile | |
29 except ImportError: | |
30 import profile | |
31 | |
32 ctx.is_profiling = False | |
33 profile.runctx('_real_worker_func(wid, ctx)', | |
34 globals(), locals(), | |
35 filename='PipelineWorker-%d.prof' % wid) | |
36 else: | |
37 _real_worker_func(wid, ctx) | |
38 | |
39 | |
40 def _real_worker_func(wid, ctx): | |
26 logger.debug("Worker %d booting up..." % wid) | 41 logger.debug("Worker %d booting up..." % wid) |
27 w = ProcessingWorker(wid, ctx) | 42 w = ProcessingWorker(wid, ctx) |
28 w.run() | 43 w.run() |
29 | 44 |
30 | 45 |
38 self.work_queue = work_queue | 53 self.work_queue = work_queue |
39 self.results = results | 54 self.results = results |
40 self.abort_event = abort_event | 55 self.abort_event = abort_event |
41 self.force = force | 56 self.force = force |
42 self.debug = debug | 57 self.debug = debug |
58 self.is_profiling = False | |
43 self.enabled_processors = None | 59 self.enabled_processors = None |
44 self.additional_processors = None | 60 self.additional_processors = None |
45 | 61 |
46 | 62 |
47 class ProcessingWorkerJob(object): | 63 class ProcessingWorkerJob(object): |