Django 网站优化:对核心 python 函数的调用过多?
Posted
技术标签:
【中文标题】Django 网站优化:对核心 python 函数的调用过多?【英文标题】:Django website optimization: Too many calls to core python functions? 【发布时间】:2017-01-17 13:43:07 【问题描述】:我正在尝试优化页面的加载时间,并发现一个请求正在获取数据并花费约 6-7 秒。我使用了django-extensions 的runprofileserver
并发现导致延迟的不是数据库,而是对核心python 方法的过度调用。看看前 30 个时间密集型呼叫
在这里我们可以看到,主要是由于对内置 python 方法的大量调用,此请求需要超过 5 秒才能执行。我想知道,下面的结论对吗?
-
SQL 查询或 ORM 不是罪魁祸首(虽然它是数据密集型请求,但它以 0.194 秒排名第 6)?
没有太大的优化范围,因为主要调用发生在 posixpath.py 和 genericpath.py 的内置 python 函数上?
您能否在查看以上数据后提出优化方法(如果有)?
【问题讨论】:
如果瓶颈是所有其他正在发生的处理,它似乎与 django 无关。如果不查看这些方法中发生的情况,很难说出要优化的内容。另外,检查您是否使用 cProfiler 获得相同的结果,调试工具栏是否也暗示类似的结果?如果处理需要很长时间,也许您试图在视图中做太多事情?让我在这里猜测一下……您是否可以异步进行一些处理(使用 celery),并简单地在视图中显示结果?如果不是,那恐怕就是python优化问题了。 【参考方案1】:尝试使用缓存的模板加载器https://docs.djangoproject.com/en/1.10/ref/templates/api/#django.template.loaders.cached.Loader
【讨论】:
我不是用模板来生成前端而是AngularJS以上是关于Django 网站优化:对核心 python 函数的调用过多?的主要内容,如果未能解决你的问题,请参考以下文章
MATLAB教程案例12基于GA遗传优化算法的函数极值计算matlab仿真及其他应用
MATLAB教程案例11基于PSO粒子群优化算法的函数极值计算matlab仿真及其他应用
在 MATLAB 中对具有额外参数传递给它的成本函数进行约束优化