Odoo @profile 性能测试
odoo rst 文档
Another profiler can be used to log statistics on a method:
1 2 3 4 5
|
from odoo.tools.profiler import profile [...]
@api.model def (...):
|
The statistics will be displayed into the logs once the method to be analysed is
completely reviewed.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
2018-03-28 06:18:23,196 22878 INFO openerp odoo.tools.profiler: calls queries ms project.task ------------------------ /home/odoo/src/odoo/addons/project/models/project.py, 638
1 0 0.02 @profile @api.model def create(self, vals): # context: no_log, because subtype already handle this 1 0 0.01 context = dict(self.env.context, mail_create_nolog=True)
# for default stage 1 0 0.01 if vals.get('project_id') and not context.get('default_project_id'): context['default_project_id'] = vals.get('project_id') # user_id change: update date_assign 1 0 0.01 if vals.get('user_id'): vals['date_assign'] = fields.Datetime.now() # Stage change: Update date_end if folded stage 1 0 0.0 if vals.get('stage_id'): vals.update(self.update_date_end(vals['stage_id'])) 1 108 631.8 task = super(Task, self.with_context(context)).create(vals) 1 0 0.01 return task
Total: 1 108 631.85
|
@profile 用法
1 2 3 4 5 6 7 8
|
from odoo.tools.profiler import profile ... @api.model_create_multi @profile def create(self, vals_list): ...
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
<!-- 输出结果 --> 2019-10-30 14:41:29,185 6884 INFO 1029 odoo.tools.profiler: calls queries ms res.users --------------------------- /opt/odoo/./core/odoo/addons/base/models/res_users.py, 474
1 0 0.02 @api.model_create_multi @profile def create(self, vals_list): 1 56 313.6 users = super(Users, self).create(vals_list) 3 0 0.04 for user in users: 1 2 9.17 user.partner_id.write({'company_id': user.company_id.id, 'active': user.active}) 1 0 0.0 return users
Total: 1 58 322.84
|
近期评论