मेमोरी उपयोग के लिए कोड प्रोफाइलिंग

Efficient Python Code लिखना

Logan Thomas

Scientific Software Technical Trainer, Enthought

तेज़ और आसान तरीका

import sys
nums_list = [*range(1000)]
sys.getsizeof(nums_list)
9112
import numpy as np

nums_np = np.array(range(1000))
sys.getsizeof(nums_np)
8096
Efficient Python Code लिखना

कोड प्रोफाइलिंग: मेमोरी

  • मेमोरी खपत के विस्तृत आँकड़े
  • लाइन-दर-लाइन विश्लेषण
  • उपयोग किया पैकेज: memory_profiler
pip install memory_profiler
  • memory_profiler पैकेज का उपयोग
%load_ext memory_profiler

%mprun -f convert_units convert_units(heroes, hts, wts)
Efficient Python Code लिखना

कोड प्रोफाइलिंग: मेमोरी

  • memory_profiler इस्तेमाल करते समय फंक्शंस इम्पोर्ट होने चाहिए
    • hero_funcs.py

 

from hero_funcs import convert_units
%load_ext memory_profiler

%mprun -f convert_units convert_units(heroes, hts, wts)
Efficient Python Code लिखना

%mprun आउटपुट

%mprun -f convert_units convert_units(heroes, hts, wts)

alt="मैजिक कमांड mprun का टैब्युलर आउटपुट जो मेमोरी उपयोग प्रोफाइलिंग आँकड़ों का सार देता है"

Efficient Python Code लिखना

%mprun आउटपुट

%mprun -f convert_units convert_units(heroes, hts, wts)

alt="मैजिक कमांड mprun का टैब्युलर आउटपुट जो मेमोरी उपयोग प्रोफाइलिंग आँकड़ों का सार देता है, जिसमें Line # कॉलम हाइलाइट है"

Efficient Python Code लिखना

%mprun आउटपुट

%mprun -f convert_units convert_units(heroes, hts, wts)

alt="मैजिक कमांड mprun का टैब्युलर आउटपुट जो मेमोरी उपयोग प्रोफाइलिंग आँकड़ों का सार देता है, जिसमें Mem usage कॉलम हाइलाइट है"

Efficient Python Code लिखना

%mprun आउटपुट

%mprun -f convert_units convert_units(heroes, hts, wts)

alt="मैजिक कमांड mprun का टैब्युलर आउटपुट जो मेमोरी उपयोग प्रोफाइलिंग आँकड़ों का सार देता है, जिसमें Increment कॉलम हाइलाइट है"

Efficient Python Code लिखना

%mprun आउटपुट

%mprun -f convert_units convert_units(heroes, hts, wts)

alt="मैजिक कमांड mprun का टैब्युलर आउटपुट जो मेमोरी उपयोग प्रोफाइलिंग आँकड़ों का सार देता है, जिसमें Line contents कॉलम हाइलाइट है"

Efficient Python Code लिखना

%mprun आउटपुट

%mprun -f convert_units convert_units(heroes, hts, wts)

alt="मैजिक कमांड mprun का टैब्युलर आउटपुट जो मेमोरी उपयोग प्रोफाइलिंग आँकड़ों का सार देता है"

Efficient Python Code लिखना

%mprun आउटपुट: सावधानियाँ

%mprun -f convert_units convert_units(heroes, hts, wts)

alt="मैजिक कमांड mprun का टैब्युलर आउटपुट जो मेमोरी उपयोग प्रोफाइलिंग आँकड़ों का सार देता है, आउटपुट में mebibytes (MiB) हाइलाइट हैं"

Efficient Python Code लिखना

%mprun आउटपुट: सावधानियाँ

इस उदाहरण में डेटा 35,000 heroes का रैंडम सैंपल है.

(मूल 480 superheroes डेटासेट नहीं)

%mprun -f convert_units convert_units(heroes, hts, wts)

alt="मैजिक कमांड mprun का टैब्युलर आउटपुट जो मेमोरी उपयोग प्रोफाइलिंग आँकड़ों का सार देता है"

Efficient Python Code लिखना

%mprun आउटपुट: सावधानियाँ

छोटी मेमोरी आवंटन पर 0.0 MiB आउटपुट आ सकता है.

(मूल 480 superheroes डेटासेट के साथ)

%mprun -f convert_units convert_units(heroes, hts, wts)

alt="मैजिक कमांड mprun का टैब्युलर आउटपुट जो मेमोरी उपयोग प्रोफाइलिंग आँकड़ों का सार देता है, जिसमें Increment कॉलम की सभी पंक्तियाँ 0.0 MiB दिखाती हैं"

Efficient Python Code लिखना

%mprun आउटपुट: सावधानियाँ

  • ऑपरेटिंग सिस्टम से क्वेरी कर मेमोरी जाँचता है
  • प्लेटफ़ॉर्म और रन के बीच परिणाम बदल सकते हैं
    • फिर भी हर लाइन की मेमोरी खपत से तुलना देख सकते हैं
Efficient Python Code लिखना

अभ्यास करते हैं!

Efficient Python Code लिखना

Preparing Video For Download...