编程学习网 > 编程语言 > Python > 监控 Python 内存使用情况和代码执行时间!
2025
10-21

监控 Python 内存使用情况和代码执行时间!


在写 Python 项目时,有时候你会发现,程序跑着跑着就开始“吃”内存,或者某个接口响应突然变慢。其实,很多性能问题不是算法复杂,而是你没搞清楚代码到底耗在哪儿。今天这篇文章,我们就聊聊怎么用几行 Python 代码监控内存和执行时间,让你写代码更有“底气”。

一、最简单的执行时间统计法

很多人调性能第一反应是加个 time.time(),这个没错,简单粗暴又实用。


输出类似:


不过这种方法不太方便在多个函数或模块间使用,建议用更优雅一点的方式,比如装饰器。

二、用装饰器统计函数耗时

装饰器其实就是在函数执行前后插入逻辑,非常适合这种性能监控场景。


time.perf_counter() 比 time.time() 更精准,适合微秒级别的性能分析。

三、监控内存使用情况(psutil

光看时间还不够,有时候你会发现函数明明很快,但运行久了内存占用越来越多,这就得看“内存泄漏”或“缓存没清掉”的问题了。psutil 是个非常实用的库,能获取系统和进程的各种资源使用情况。


这段代码可以很直观地告诉你执行前后内存的变化。

四、用 tracemalloc 跟踪内存分配

如果你想知道到底哪一行代码占了内存,可以试试 Python 自带的 tracemalloc 模块。


运行后你会看到两个数字:当前内存和峰值内存。如果某个函数在峰值时占了太多,那就得优化数据结构或清理引用了。

五、结合两者的监控类

如果你项目比较大,建议封装个监控工具类,方便全局使用:


这样就能在任何代码块前后加个 with Monitor():,自动打印内存变化和耗时了。

六、实际场景:分析慢函数

假设你在处理日志文件,发现程序跑得特别慢。你可以像这样快速分析:


输出的执行时间能帮你判断瓶颈是不是在 I/O 上。如果是 CPU 密集型的,可以考虑多线程或异步。

七、总结一下

  • 只想看函数耗时:time.perf_counter() + 装饰器
  • 想看内存变化:psutil.Process().memory_info()
  • 想知道内存哪行吃得多:tracemalloc
  • 想统一监控:封装成类或上下文管理器

这几招结合起来,足够覆盖 90% 的性能排查场景了。别忘了,性能优化的第一步永远是——先量化问题,再动刀。

如果你想进一步分析全局性能,也可以用 cProfile


它能打印出每个函数调用的次数和平均耗时,非常适合定位复杂程序的瓶颈。

这样一来,你的 Python 项目在上线前就能“体检”一次:哪些函数太慢,哪里占内存太多,一清二楚。写代码不是怕有 bug,怕的是连 bug 吃内存都没察觉。

以上就是“监控 Python 内存使用情况和代码执行时间!的详细内容,想要了解更多Python教程欢迎持续关注编程学习网。

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取