最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

2款Python內(nèi)存檢測(cè)工具介紹和使用方法

 更新時(shí)間:2014年06月01日 22:19:53   作者:  
這篇文章主要介紹了2款Python內(nèi)存檢測(cè)工具介紹和使用方法,可以用來分析Python程序的內(nèi)存使用量,需要的朋友可以參考下

去年自己寫過一個(gè)程序時(shí),不太確定自己的內(nèi)存使用量,就想找寫工具來打印程序或函數(shù)的內(nèi)存使用量。
這里將上次找到的2個(gè)內(nèi)存檢測(cè)工具的基本用法記錄一下,今后分析Python程序內(nèi)存使用量時(shí)也是需要的。

memory_profiler模塊(與psutil一起使用)
注:psutil這模塊,我太喜歡了,它實(shí)現(xiàn)了很多Linux命令的主要功能,如:ps, top, lsof, netstat, ifconfig, who, df, kill, free 等等。
示例代碼(https://github.com/smilejay/python/blob/master/py2014/mem_profile.py):

復(fù)制代碼 代碼如下:

#!/usr/bin/env python

'''
Created on May 31, 2014

@author: Jay <smile665@gmail.com>
@description: use memory_profiler module for profiling programs/functions.
'''

from memory_profiler import profile
from memory_profiler import memory_usage
import time

 
@profile
def my_func():
    a = [1] * (10 ** 6)
    b = [2] * (2 * 10 ** 7)
    del b
    return a

 
def cur_python_mem():
    mem_usage = memory_usage(-1, interval=0.2, timeout=1)
    return mem_usage

 
def f(a, n=100):
    time.sleep(1)
    b = [a] * n
    time.sleep(1)
    return b

if __name__ == '__main__':
    a = my_func()
    print cur_python_mem()
    print ""
    print memory_usage((f, (1,), {'n': int(1e6)}), interval=0.5)

運(yùn)行上面的代碼,輸出結(jié)果為:

復(fù)制代碼 代碼如下:

jay@Jay-Air:~/workspace/python.git/py2014 $python mem_profile.py
Filename: mem_profile.py

Line #    Mem usage    Increment   Line Contents
================================================
    15      8.0 MiB      0.0 MiB   @profile
    16                             def my_func():
    17     15.6 MiB      7.6 MiB       a = [1] * (10 ** 6)
    18    168.2 MiB    152.6 MiB       b = [2] * (2 * 10 ** 7)
    19     15.6 MiB   -152.6 MiB       del b
    20     15.6 MiB      0.0 MiB       return a

 
[15.61328125, 15.6171875, 15.6171875, 15.6171875, 15.6171875]

[15.97265625, 16.00390625, 16.00390625, 17.0546875, 23.63671875, 23.63671875, 23.640625]

Guppy (使用了Heapy)
Guppy is an umbrella package combining Heapy and GSL with support utilities such as the Glue module that keeps things together.
示例代碼(https://github.com/smilejay/python/blob/master/py2014/try_guppy.py):

復(fù)制代碼 代碼如下:

#!/usr/bin/env python

'''
Created on May 31, 2014

@author: Jay <smile665@gmail.com>

@description: just try to use Guppy-PE (useing Heapy) for memory profiling.
'''

 
from guppy import hpy

a = [8] * (10 ** 6)

h = hpy()
print h.heap()
print h.heap().more
print h.heap().more.more

注意其中,要輸出更多信息的.more用法。
運(yùn)行上面的程序,輸出結(jié)果為:

復(fù)制代碼 代碼如下:

jay@Jay-Air:~/workspace/python.git/py2014 $python try_guppy.py
Partition of a set of 26963 objects. Total size = 11557848 bytes.
 Index  Count   %     Size   % Cumulative  % Kind (class / dict of class)
     0    177   1  8151560  71   8151560  71 list
     1  12056  45   996840   9   9148400  79 str
     2   5999  22   488232   4   9636632  83 tuple
     3    324   1   283104   2   9919736  86 dict (no owner)
     4     68   0   216416   2  10136152  88 dict of module
     5    199   1   210856   2  10347008  90 dict of type
     6   1646   6   210688   2  10557696  91 types.CodeType
     7   1610   6   193200   2  10750896  93 function
     8    199   1   177008   2  10927904  95 type
     9    124   0   135328   1  11063232  96 dict of class
<91 more rows. Type e.g. '_.more' to view.>
 Index  Count   %     Size   % Cumulative  % Kind (class / dict of class)
    10   1045   4    83600   1  11148456  96 __builtin__.wrapper_descriptor
    11    109   0    69688   1  11218144  97 dict of guppy.etc.Glue.Interface
    12    389   1    34232   0  11252376  97 __builtin__.weakref
    13    427   2    30744   0  11283120  97 types.BuiltinFunctionType
    14    411   2    29592   0  11312712  98 __builtin__.method_descriptor
    15     25   0    26200   0  11338912  98 dict of guppy.etc.Glue.Share
    16    108   0    25056   0  11363968  98 __builtin__.set
    17    818   3    19632   0  11383600  98 int
    18     66   0    18480   0  11402080  98 dict of guppy.etc.Glue.Owner
    19     16   0    17536   0  11419616  99 dict of abc.ABCMeta
<81 more rows. Type e.g. '_.more' to view.>
(后面省略了部分輸出)

另外,還有一個(gè)叫“PySizer”的也是做memory profiling的,不過沒怎么維護(hù)了。

相關(guān)文章

  • OpenCV圖像縮放之cv.resize()函數(shù)詳解

    OpenCV圖像縮放之cv.resize()函數(shù)詳解

    resize函數(shù)opencv中專門用來調(diào)整圖像大小的函數(shù),下面這篇文章主要給大家介紹了關(guān)于OpenCV圖像縮放之cv.resize()函數(shù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • 分割python多空格字符串的兩種方法小結(jié)

    分割python多空格字符串的兩種方法小結(jié)

    這篇文章主要介紹了分割python多空格字符串的兩種方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • python替換文件中的某幾行操作技巧

    python替換文件中的某幾行操作技巧

    這篇文章主要介紹了python替換文件中的某幾行,本文介紹使用python正則庫(kù)打開文件并替換文件中某幾行數(shù)據(jù)的可行方法,需要的朋友可以參考下
    2023-09-09
  • 詳解Python中的魔法函數(shù)與量子計(jì)算模擬

    詳解Python中的魔法函數(shù)與量子計(jì)算模擬

    這篇文章主要介紹了python的魔法函數(shù)和量子計(jì)算模擬,我們可以通過一個(gè)實(shí)際的案例來先審視一下這兩個(gè)需求是如何被結(jié)合起來的,希望對(duì)大家有所幫助
    2023-03-03
  • python程序需要編譯嗎

    python程序需要編譯嗎

    在本篇文章里小編給大家整理了關(guān)于python程序編譯相關(guān)的知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們參考學(xué)習(xí)下。
    2020-06-06
  • Python全棧之學(xué)習(xí)MySQL(2)

    Python全棧之學(xué)習(xí)MySQL(2)

    這篇文章主要為大家介紹了Python全棧之MySQL,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Python sep參數(shù)使用方法詳解

    Python sep參數(shù)使用方法詳解

    這篇文章主要介紹了Python sep參數(shù)使用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Python設(shè)計(jì)模式之狀態(tài)模式原理與用法詳解

    Python設(shè)計(jì)模式之狀態(tài)模式原理與用法詳解

    這篇文章主要介紹了Python設(shè)計(jì)模式之狀態(tài)模式原理與用法,簡(jiǎn)單描述了狀態(tài)模式的概念、原理并結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)與使用狀態(tài)模式的相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01
  • Python 刪除文件每一行的行號(hào)思路解讀

    Python 刪除文件每一行的行號(hào)思路解讀

    有時(shí)候我們需要?jiǎng)h除代碼中的行號(hào),比如在把代碼復(fù)制到記事本中的時(shí)候,前邊的行號(hào)不刪除就沒辦法運(yùn)行,我們要手動(dòng)刪掉代碼段前的行號(hào),才能運(yùn)行代碼。如果有幾百行,就非常累,非常不爽,所以這種事還是要交給計(jì)算機(jī)去做
    2021-11-11
  • python爬蟲 urllib模塊url編碼處理詳解

    python爬蟲 urllib模塊url編碼處理詳解

    這篇文章主要介紹了python爬蟲 urllib模塊url編碼處理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評(píng)論

酒泉市| 新化县| 津南区| 保定市| 南漳县| 宜川县| 盘山县| 监利县| 嘉禾县| 温泉县| 通河县| 卢龙县| 客服| 鸡西市| 巴林右旗| 修武县| 虎林市| 军事| 曲松县| 丁青县| 广安市| 安宁市| 田东县| 闵行区| 新龙县| 平湖市| 措美县| 巴林右旗| 资中县| 拜城县| 桃源县| 资阳市| 阿瓦提县| 泰和县| 雷波县| 凤翔县| 尚志市| 分宜县| 崇州市| 岑巩县| 巴里|