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源码

MATLAB教程案例12基于GA遗传优化算法的函数极值计算matlab仿真及其他应用

MATLAB教程案例11基于PSO粒子群优化算法的函数极值计算matlab仿真及其他应用

在 MATLAB 中对具有额外参数传递给它的成本函数进行约束优化

MATLAB教程案例13基于SA模拟退火优化算法的函数极值计算matlab仿真及其他应用

粒子群优化算法-Python版本和Matlab函数调用