django性能分析工具之silk

Posted zlixing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django性能分析工具之silk相关的知识,希望对你有一定的参考价值。

在开发过程中,有很多时候需要了解程序性能瓶颈,比如程序执行时间、网络耗时、数据库连接时间等;
那接下来,django silk就派上用场了!

安装

​https://github.com/jazzband/django-silk​

pip install django-silk
# or
pip install https://github.com/jazzband/silk/archive/3.0.1.tar.gz

settings.py

MIDDLEWARE = [
...
silk.middleware.SilkyMiddleware,
...
]

INSTALLED_APPS = (
...
silk
)

 

urls.py

urlpatterns += [url(r^silk/, include(silk.urls, namespace=silk))]

 

迁移

python manage.py makemigrations

python manage.py migrate

python manage.py collectstatic

 

 

性能报告

启动项目后,访问:项目网址/silk/,可查看性能报告,访问项目页面后,查看报告;
摘要报告:

django性能分析工具之silk_django

 

 

 

请求列表:

django性能分析工具之silk_github_02

 

 

请求详细:

django性能分析工具之silk_django_03

 

 

 

请求的sql部分:

django性能分析工具之silk_github_04

 

 

查看某一条sql执行情况:

django性能分析工具之silk_python_05

 

 

需要程序详细的跟踪记录和执行情况,需要添加装饰器,以联系上下文来参考:
settings设置:

# 使用Python的内置cProfile分析器
SILKY_PYTHON_PROFILER = True

# 生成.prof文件,silk产生的程序跟踪记录,详细记录来执行来哪个文件,哪一行,用了多少时间等信息
SILKY_PYTHON_PROFILER_BINARY = True

# .prof文件保存路径
SILKY_PYTHON_PROFILER_RESULT_PATH = /data/profiles/

 

函数加上装饰器

from silk.profiling.profiler import silk_profile

@silk_profile(name=user login) # name在Profiling页面区分不同请求名称
def test(request):
pass

 

访问程序后,查看
分析情况:

django性能分析工具之silk_github_06

 

 

使用标准库PSTATS查看.PROF文件

profiles文件也可以用python标准库中的​​pstats​​查看,大致就是长这样:

 

 

 

django性能分析工具之silk_django_07

 


以上是关于django性能分析工具之silk的主要内容,如果未能解决你的问题,请参考以下文章

如何分析 Django 的扩展瓶颈?

实时音频编解码之十三 Opus编码-SILK编码-噪声整形分析

实时音频编解码之十三 Opus编码-SILK编码-噪声整形分析

实时音频编解码之十二Opus编码-SILK编码-基频估计

实时音频编解码之十七 Opus解码 SILK解码

实时音频编解码之十七 Opus解码 SILK解码