撰寫高效的 Python 程式碼
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
memory_profilerpip install memory_profiler
memory_profiler 套件%load_ext memory_profiler
%mprun -f convert_units convert_units(heroes, hts, wts)
memory_profiler 時,函式必須以匯入方式使用hero_funcs.py
from hero_funcs import convert_units
%load_ext memory_profiler
%mprun -f convert_units convert_units(heroes, hts, wts)
%mprun -f convert_units convert_units(heroes, hts, wts)

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

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

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

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

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

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

此範例使用 35,000 位英雄的隨機樣本。
(非原始的 480 筆 superheroes 資料集)
%mprun -f convert_units convert_units(heroes, hts, wts)

小量的記憶體配置可能顯示為 0.0 MiB。
(使用原始的 480 筆 superheroes 資料集)
%mprun -f convert_units convert_units(heroes, hts, wts)

撰寫高效的 Python 程式碼