精华内容
下载资源
问答
  • Python 查看程序内存占用情况 flyfish psutil 这里用在查看内存占用情况 memory_profiler输出每一行代码增减的内存 安装 pip install memory_profiler 代码 import numpy as np import os import psutil import gc ...

    Python 查看程序内存占用情况

    flyfish

    psutil 这里用在查看内存占用情况
    memory_profiler输出每一行代码增减的内存

    安装

    pip install memory_profiler
    

    代码

    import numpy as np
    import os
    import psutil
    import gc
    from memory_profiler import profile
    
    @profile
    def test():
        a=np.full(shape=(600, 700), fill_value=99.0)
        return a
    
    
    if __name__ == '__main__':
    
        a=test()
    
        print('A:%.2f MB' % (psutil.Process(os.getpid()).memory_info().rss / 1024 / 1024))
        del a
        gc.collect()
        print('B:%.2f MB' % (psutil.Process(os.getpid()).memory_info().rss / 1024 / 1024))
    

    如果没有from memory_profiler import profile这句代码,执行终端命令如下

    python -m memory_profiler test.py
    

    结果

    Line #    Mem usage    Increment  Occurences   Line Contents
    ============================================================
        10     53.8 MiB     53.8 MiB           1   @profile
        11                                         def test():
        12     56.8 MiB      3.0 MiB           1       a=np.full(shape=(600, 700), fill_value=99.0)
        13     56.8 MiB      0.0 MiB           1       return a
    
    
    A:56.83 MB
    B:53.83 MB
    
    展开全文
  • python查看内存占用

    千次阅读 2019-06-18 10:12:00
    有的时候需要对python程序内存占用进行监控,这个时候可以用到psutil库,Anaconda中是自带的,如果import出错,可以用pip install psutil(安装在python中)或conda install psutil(安装在Anaconda中) #常用的: ...

    有的时候需要对python程序内存占用进行监控,这个时候可以用到psutil库,Anaconda中是自带的,如果import出错,可以用pip install psutil(安装在python中)或conda install psutil(安装在Anaconda中)

    #常用的:
    import psutil
    import os
    info = psutil.virtual_memory()
    print u'内存使用:',psutil.Process(os.getpid()).memory_info().rss
    print u'总内存:',info.total
    print u'内存占比:',info.percent
    print u'cpu个数:',psutil.cpu_count()

    其他内置的方法或属性还有:

    boot_time
    callable
    collections
    cpu_count
    cpu_percent
    cpu_stats
    cpu_times
    cpu_times_percent
    disk_io_counters
    disk_partitions
    disk_usage
    errno
    functools
    long
    net_connections
    net_if_addrs
    net_if_stats
    net_io_counters
    os
    pid_exists
    pids
    process_iter
    pwd
    signal
    subprocess
    swap_memory
    sys
    test
    time
    traceback
    users
    version_info
    virtual_memory
    wait_procs
    win_service_get
    win_service_iter

    查看对象占用内存大小

    import sys as sys
    
     a = [x for x in range(1000)]
     print sys.getsizeof(a)

     

    转载于:https://my.oschina.net/u/2000675/blog/3063245

    展开全文
  • 查看 Python程序或对象的内存占用

    千次阅读 2020-03-25 16:07:28
    查看当前 python 程序内存占用 print(u'当前进程的内存使用:%.4f GB' % (psutil.Process(os.getpid()).memory_info().rss / 1024 / 1024 / 1024) ) > 当前进程的内存使用:0.6119 GB 查看电脑的总的内存信息 ...

    1.查看当前程序的内存占用——psutil 库

    导入 psutil 库

    import psutil
    import os
    

    查看当前 Python 程序的内存占用

    print(u'当前进程的内存使用:%.4f GB' % (psutil.Process(os.getpid()).memory_info().rss / 1024 / 1024 / 1024) )
    > 当前进程的内存使用:0.6119 GB
    

    查看电脑的总的内存信息

    info = psutil.virtual_memory()
    info
    
    > svmem(total=8506298368, available=3768840192, percent=55.7, used=4737458176, free=3768840192)
    

    将信息打印出来

    print( u'电脑总内存:%.4f GB' % (info.total / 1024 / 1024 / 1024) )
    print(u'当前使用的总内存占比:',info.percent)
    print(u'cpu个数:',psutil.cpu_count())
    
    > 电脑总内存:7.9221 GB
    > 当前使用的总内存占比: 55.7
    > cpu个数: 8
    

    2.查看Python对象的内存占用——sys库

    导入sys库

    import sys
    
    a.查看 DataFrame 的内存占用

    sys库查看

    print(sys.getsizeof(df) / 1024 / 1024, 'MB')
    > 15.755158424377441 MB
    

    pandas自带方法,结果近似

    # df.memory_usage()显示 df 的每个特征(不是元素)所占用的内存,是个Series
    print(df.memory_usage().sum() / 1024 / 1024 , 'MB')
    > 15.754988670349121 MB
    
    b.查看 numpy 的内存占用

    生成 numpy 对象

    a = np.random.rand(100000, 1000) 
    print(sys.getsizeof(a) / 1024 / 1024, 'MB')
    > 762.9395599365234 MB
    
    # 每个元素8个字节(B),总内存的计算方法为 100000 x 1000 x 8 / 1024 / 1024 = 762.939453125‬
    a.itemsize
    > 8  
    
    1. 数组的每个元素的大小是一致的,8个字节,当元素数量增大10倍时,数组所占内存也会增大10倍
    2. 当shape为(1000000, 10000) 时,内存超过70G,报错MemoryError: Unable to allocate 74.5 GiB for an array with shape (1000000, 10000) and data type float64
      而当shape为(100000, 10000) 时,内存大概7G,超过我的电脑的运行内存,但为何最后也创建数组了???

    参考:
    [1]: https://blog.csdn.net/xiaodongxiexie/article/details/54633049

    展开全文
  • 有的时候需要对python程序内存占用进行监控,这个时候可以用到psutil库,Anaconda中是自带的,如果import出错,可以用pip install psutil(安装在python中)或conda install psutil(安装在Anaconda中) #常用的: ...
  • 检查python程序运行时间、CPU和内存占用的方法 (python3.6.8,亲测可用) 用line_profiler性能调试工具检测每一行python代码的运行时间 。 参考(https://my.oschina.net/readerror/blog/2054612 安装包 方法一 :...

    检查python程序运行时间、CPU和内存占用的方法
    (python3.6.8,亲测可用)


    用line_profiler性能调试工具检测每一行python代码的运行时间 。

    参考(https://my.oschina.net/readerror/blog/2054612

    • 安装包
      方法一 :使用pip安装
    pip install line_profiler.whl
    pip install wrapt
    

    方法二:在pycharm中通过settings安装

    • 装饰器实现
      装饰器实现(新建utils.py)
    • 使用
      在这里插入图片描述

    使用memory_profiler模块用来基于逐行测量代码的内存使用。使用这个模块会让代码运行的更慢。

    参考https://www.jb51.net/article/63244.htm
    使用方法和line_profiler 差不多,不过这个不用自己手动写装饰器,直接用就行。

    • 安装 memory_profiler
    • from memory_profiler import profile
    • 在函数前加上装饰器@profile()

    PS

    • 这两个都可以直接在pycharm中使用,在函数前加上装饰器之后,运行就行,不用在命令行执行。
    • 不能两个一起加,只能一个一个来
    • 计算程序运行时间和内存占用情况需要一定的开销,会使程序变慢
    展开全文
  • 有的时候需要对python程序内存占用进行监控,这个时候可以用到psutil库,Anaconda中是自带的,如果import出错,可以用pip install psutil(安装在python中)或conda install psutil(安装在Anaconda中) #常用的: ...
  • 有的时候需要对python程序内存占用进行监控,这个时候可以用到psutil库,Anaconda中是自带的,如果import出错,可以用pip install psutil(安装在python中)或conda install psutil(安装在Anaconda中) #常用的: ...
  • 如果程序处理的数据比较多、比较复杂,那么在程序运行的时候,会占用大量的内存,当内存占用到达一定的数值,程序就有可能被操作系统终止,特别是在限制程序所使用的内存大小的场景,更容易发生问题。下面我就给出几...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
  • #!/usr/bin/env python import re,os #Swap: 0 kB def check_swap(pid):  try:  f_name='/proc/'+pid+'/smaps'  f = open(f_name)  lines=f.readl
  • 只介绍简单的使用, 更多使用方法请查看官方文档 tracemalloc 官方文档 tracemalloc文档地址 使用 import tracemalloc tracemalloc.start() # 运行程序 main() snapshot = tracemalloc.take_snapshot() top_stats...
  • 2、Python开发的程序在使用过程中占用内存很大,想确定下是哪段代码引起的; 解决方案 使用profile分析分析cpu使用情况 可以使用profile和cProfile对python程序进行分析,这里主要记录下cProfile的使用,...
  • python2.7在内存管理上相比python3还是有些坑的,其...下面是我用的两个内存监视工具,一个是按每行代码查看内存占用的工具memory_profiler,一个是查看占用内存前十位变量的工具guppy。 1. memory_profiler 首先是安
  • 表现 解决方法 定位问题过程 gdb-python: 搞清楚python程序在做什么 准备gdb 接入gdb 查看线程 ... guppy 取得内存使用的各种对象占用情况 无法回收的对象 不可回收对象的例子 ???? ...
  • python2.7在内存管理上相比python3还是有些坑的,其释放后的内存仍然保留在python的内存池中,不被系统所用。...下面是我用的两个内存监视工具,一个是按每行代码查看内存占用的工具memory_profiler,一个
  • 今天在看服务器上的进程时,用top查的时候,发现一个一直跑的脚本程序内存竟然达到了1.6G,这个脚本我有印象,一开始仅占用20M左右,显然是内存泄漏了。 用gc和objgraph,主要是objgraph,查看都是那些对象在增长,...
  • 一、python对生成yield的理解推荐查看这篇 点这里 写的特别好,容易理解 二、作用:合理利用降低程序的复杂度 例子: 比如range方法使用循环是很占内存的,用yield替换降低内存占用 #encoding:utf-8 import sys ...

空空如也

空空如也

1 2 3 4
收藏数 76
精华内容 30
关键字:

python查看程序内存占用

python 订阅