码迷,mamicode.com
首页 > 编程语言 > 详细

python 内存分析

时间:2020-04-09 13:06:13      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:return   port   一个   一起   python程序   查看内存   安装   跟踪   对象   

memory_profiler 模块被用于在逐行的基础上,测量你代码的内存使用率,也建议安装 psutil 包,使得 memory_profile 模块运行的更快

from memory_profiler import profile
 
 
@profile(precision=6)
def primes(n):
    if n == 2:
        return [2]
    elif n < 2:
        return []
    s = range(3, n + 1, 2)
    mroot = n ** 0.5
    half = (n + 1) / 2 - 1
    i = 0
    m = 3
    while m <= mroot:
        if s[i]:
            j = (m * m - 3) / 2
            s[j] = 0
            while j < half:
                s[j] = 0
                j += m
        i = i + 1
        m = 2 * i + 3
    return [2] + [x for x in s if x]
 
 
len(primes(100000))

 

meliae会把某个时刻的内存给dump到一个文件中,然后再对该文件进行分析,当我们的某个python程序占用内存很大,可能有内存泄露发生时,可以使用该工具来进行检测分析

 

Guppy (使用了Heapy):使用 guppy 包,你可以跟踪每个类型在你代码中每个阶段(字符, 元组, 字典 等等)有多少对象被创建了,查看占用内存前十位变量的工具

 

objgraph模块:该工具允许你查看内存中对象的数量,定位含有该对象的引用的所有代码的位置。结合pdb一起使用

python 内存分析

标签:return   port   一个   一起   python程序   查看内存   安装   跟踪   对象   

原文地址:https://www.cnblogs.com/testzcy/p/12665878.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!