Odoo性能优化实战(profiler)

背景:

由于项目业务逻辑复杂、数据量大、多系统对接等复杂场景造成系统响应慢。

优化思路:

从用户角度出发,在浏览器打开分析接口请求,根据接口响应时间利用profiler图定位接口内部代码具体优化点。当然,建议优化业务类接口,odoo原本接口相对比较成熟稳定,并且框架本身也有完整的体系,很容易引起连带问题,风险较高。

所以本文仅介绍业务代码接口优化方案。

开始之前先简单介绍下profiler。

profiler是python提供的一款优化分析工具,使用简单,只需要在目标方法上加上注解引入相应的依赖包,运行程序即可生成该方法的具体层级调用的.profile文件,再通过两条命令生成具体的可视化图片,图片显示方法内部比较耗时的方法节点调用关系,每个方法节点占用的耗时百分比,调用次数等。

1、准备

pip install gprof2dot
pip install dot

2、找到访问时间较长的页面,F12,查看network

关键路径:web/dataset/call_kw/res.users/get_views

(1)直接是对应的接口,可能分析不到结果,需要找到其中关键的 方法
(2)通过接口调用到对应的方法,这里就是拼接了   get_views ,方法名就是这个


3、引入依赖包

from odoo.tools.profiler import profile(需要指定,因为有其他profile)
在对应的方法上加注解

@profile('profile/save.profile')  //profile/save.profile,执行后生成文件的 路径+文件名
比如:@profile('C:/Users/Admin/Desktop/inherit_base2.profile')

4、转文件格式
按顺序执行指令:

gprof2dot -f pstats -o C:/Users/Admin/Desktop/xxx.xdot C:/Users/Admin/Desktop/xxx.profile
dot -Tpng C:/Users/Admin/Desktop/xxx.xdot -o C:/Users/Admin/Desktop/xxx.png

这只是转成png格式,还可以转成其他格式

5、如果执行   dot 指令出错,我们可以安装 Graphviz工具,配置环境

https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi

点击下载,注意配置安装路径

用安装路径配置环境变量

可以用 cmd  执行  dot   指令

相关来源: Graphviz安装配置教程(图文详解)-CSDN博客


6、详细分析 profiler内容:Odoo性能优化实战 - 知乎

ps:可以在cmd执行pip install gprof2dot  ,就不需要在pycharm 中执行指令了

周润源 2024年11月20日
分析这篇文章

存档
登录 留下评论
部署fuxa系统(docker版本)