SORU
16 ŞUBAT 2009, PAZARTESİ


Nasıl Python bellek kullanımı profil muyum?

Son zamanlarda algoritmaları merak sardım ve saf bir uygulama yazmak ve daha sonra çeşitli şekillerde optimize ederek onları araştırıyorlar.

Ben zaten aşina standart Python modülü için profil oluşturma çalışma zamanı (en şeyler buldum timeit sihirli işlevi İPython olmak yeterli), ama ben de ilgilenmiş bellek kullanımı yani ben keşfetmek bu bileşim de (örneğin maliyet önbellekleme bir tablo önceden hesaplanmış değerleri yeniden karşı onları gerektiği gibi). Benim için belirli bir işlevi bellek kullanımını profili bir modül var mı?

CEVAP
16 ŞUBAT 2009, PAZARTESİ


Bu zaten burada yanıtlandı: Python memory profiler

Temelde o (Guppy-PE atıf) gibi bir şey yapın:

>>> from guppy import hpy; h=hpy()
>>> h.heap()
Partition of a set of 48477 objects. Total size = 3265516 bytes.
 Index  Count   %     Size   % Cumulative  % Kind (class / dict of class)
     0  25773  53  1612820  49   1612820  49 str
     1  11699  24   483960  15   2096780  64 tuple
     2    174   0   241584   7   2338364  72 dict of module
     3   3478   7   222592   7   2560956  78 types.CodeType
     4   3296   7   184576   6   2745532  84 function
     5    401   1   175112   5   2920644  89 dict of class
     6    108   0    81888   3   3002532  92 dict (no owner)
     7    114   0    79632   2   3082164  94 dict of type
     8    117   0    51336   2   3133500  96 type
     9    667   1    24012   1   3157512  97 __builtin__.wrapper_descriptor
<76 more rows. Type e.g. '_.more' to view.>
>>> h.iso(1,[],{})
Partition of a set of 3 objects. Total size = 176 bytes.
 Index  Count   %     Size   % Cumulative  % Kind (class / dict of class)
     0      1  33      136  77       136  77 dict (no owner)
     1      1  33       28  16       164  93 list
     2      1  33       12   7       176 100 int
>>> x=[]
>>> h.iso(x).sp
 0: h.Root.i0_modules['__main__'].__dict__['x']
>>> 

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • akalyne

    akalyne

    13 Mayıs 2009
  • Alan Fullmer

    Alan Fullmer

    3 EYLÜL 2010
  • Jon Reed

    Jon Reed

    14 AĞUSTOS 2006