python程序性能分析

目录

  • python程序性能分析

    • cProfile
    • line_profiler
    • memory_profiler
    • 资源监控

python程序性能分析

cProfile

https://docs.python.org/3/library/profile.html
https://www.cnblogs.com/kaituorensheng/p/4453953.html

python -m cProfile [-o output_file] [-s sort_order] (-m module | myscript.py)
  1. -o 将结果输出到文件而不是stdout
  2. -s 排序状态,选择那些参数排序,常用‘tottime‘
  3. -m 作为一个模块而不是脚本, python3.7的cProfile中有,python3.8的Profile有

cProfile的结果很长,可以考虑使用line_profile

line_profiler

逐行的python程序性能分析,https://github.com/rkern/line_profiler
安装git clone https://github.com/rkern/line_profiler.gitpip install line_profiler

kernprof -l -v script_to_profile.py

在script_to_profile.py文件中,对想要分析的函数添加装饰器

@profile
def slow_function(a, b, c):
    ...

不加-v参数会将结果保存在script_to_profile.py.lprof文件中,使用python -m line_profiler script_to_profile.py.lprof可以查看。

memory_profiler

python程序的内存监控https://github.com/pythonprofilers/memory_profiler
安装:pip install -U memory_profiler
使用方法类似于line_profiler.

资源监控

  1. 整体监控: htop
  2. I/O操作: iotop
  3. 硬盘资源:df展示每个分区,du每个文件,-h参数human-readable
  4. 内存使用:free
  5. 打开文件:lsof
  6. 网络连接与配置: ss
  7. 网络使用: nethogs和iftop

原文地址:https://www.cnblogs.com/zi-wang/p/12359526.html

时间: 2024-11-13 04:02:55

python程序性能分析的相关文章

Python程序性能分析实例

在进行代码评审时,得知资源处理程序运行时间很长,遂考虑对其进行性能分析 资源处理程序分为,读取处理.排序.输出三部分,在300万数量级的输入时,大约需要50分钟.对三部分分别计时,先使用10万输入数据进行测试,运行总时间为75秒,其中读取处理耗时65秒. 接下来计划对读取处理过程中的每一行代码进行时间统计,调研有无相关工具可以帮助进行性能分析.终于在http://blog.jobbole.com/47619/中找到合适的工具,line_profiler. 1.工具安装: 使用pip instal

Python程序性能分析模块----------cProfile

cProfile分析器可以用来计算程序整个运行时间,还可以单独计算每个函数运行时间,并且告诉你这个函数被调用多少次 def foo(): pass import cProfile cProfile.run('foo()') 或者用命令行来使用 python -m cProfile myscript.py python -m cProfile -o result.out myscript.py #把结果输出到result.out python -m cProfile -o result.out -

程序性能分析及性能测试

这里所说的程序是指对外提供tcp/ip交互协议的服务性程序.网络程序性能分析很重要,比如随着网络请求流量越来越大,我们需要知道已部署的服务能不能满足需求.这里采用对网络服务程序进行建模的方法分析影响程序性能的各要素,并计算相关性能值,它不够精确,但对我们使用其它工具对网络程序进行性能测试提供很好的理论指导. 1.网络请求 图1 什么是网络请求?如图1是<UNIX 网络编程>一书中表示网络交互过程的一幅图,整个请求是指从客户端到服务端 write->read->write->r

Linux程序性能分析和火焰图

Linux程序性能分析和火焰图 Linux程序的性能分析工具数量比较多,涉及到整个操作系统的方方面面,可能是开源的原因吧,相对于Windows来说丰富太多.其中应用分析性能方面Dtrace, SystemTap, Perf_events应该算是这方面的集大成者.Dtrace目前只在较高的内核版本有支持,记得是4.8以后, SystemTap则是需要在Red Hat的官方网站下载OS版本对应的调试符号和对应的调试版本内核,配置起来需要花费一定的时间,只有Perf_events使用起来比较方面,但是

一个python 服务器程序性能分析

该服务器为bono,启动11个进程. 在启动服务的总入口设置cprofile if __name__=="__main__": import cProfile cProfile.run('main()','bono.profile') 使用命令行中的time运行 $time python xxx.py ### 服务一直运行,等待几秒后,停止服务,在命令行中显示:    分析   等待时间为16.793(17.709-0.792-0.124)  ;内核运行时间为0.124 :用户态运行时

程序性能分析工具

很多优秀的工具都能帮助我们分析程序的性能.内存使用情况.瓶颈等问题.这里不讲原理,只介绍工具,原理请移步. valgrind 这个工具很强大,它集成了诸如memcheck.massif等的多个工具,可以分析很多东西,其中memcheck是最常用的工具,可以检测内存使用情况以及泄漏情况,分析后输出的内容也足够详细. 安装:sudo apt-get install valgrind gprof GNU工具,可以分析函数的消耗时间,调用关系等.需要编译器的帮助,即编译时要加一个选项gcc -pg ..

Java程序性能分析工具Java VisualVM(Visual GC)—程序员必备利器

VisualVM 是一款免费的\集成了多个JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优.这些功能包括生成和分析海量数据.跟踪内存泄漏.监控垃圾回收器.执行内存和 CPU 分析,同时它还支持在 MBeans 上进行浏览和操作. 在内存分析上,Java VisualVM的最大好处是可通过安装Visual GC插件来分析GC(Gabage Collection)趋势.内存消耗详细状况. 一  Visual GC(监控垃圾回收器) Java Visu

Go1.5正式版程序性能分析小积累,实验环境windows64

方法一: 内存分配器跟踪:GODEBUG=allocfreetrace=1 调度器追踪 调度器追踪能够提供对 goroutine 调度的动态行为的内视,而且同意调试负载平衡和可扩展性问题.要启用调度器追踪. 能够带有环境变量 GODEBUG=schedtrace=1000 来执行程序(这个值的意思是输入的周期,单位 ms,这样的情况下是每秒一次): set GODEBUG=schedtrace=1000 SCHED 1004ms: gomaxprocs=4 idleprocs=0 threads

xdebug对php程序性能分析

这里只是对xdebug性能优化(xdebug还可以结合其他ide断点调试等)简单描述下,详细的可以参考xdebug的官方站点 http://xdebug.org/ xdebug是什么 Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况.(http://baike.baidu.com/view/1823486.htm) xdebug的安装 php的集成开发环境wampserver和xampp都已安装xdebug,不过可能没有开启,需