インストール
conda install -c chroxvi memory_profiler
使い方
メモリ消費を見たい関数の上にデコレータ@profileを入れます。my_func()という関数を見たい場合、@profile
def my_func():
....
とします。Jupyterではmemory_profilerは使えません。つまり%mprun -f my_func my_func()
はエラーになります。
known bugで、対策はないようです。
正しいやり方: ターミナルで実行
pyrhont -m memory_profiler filename.py
と入力すればOKです。filename.pyの中に
from memory_profiler import profile
を入れてインポートすれば、
python filename.py
で同じことができます。
ファイルの中に日本語があって文字コードエラーが出る場合
utf-8 can't decode byte XXX in position XXX というエラーがでるとき。これはファイルが別のエンコードということです。方法その①
無理やり変えるには、シェバンの次の行(2行め)で文字コードの宣言をします。
#!/usr/bin/env python
# -*- coding: cp932 -*-
# ・・・memory_profiler.pyの途中でもf.read()をしているのでそこでエラーが# でるかもしれません。
方法その②
memory_profiler.pyを修正します。
920行目くらいで、
with open(filename, encoding='cp932') as f:
としてencodingを設定します。
0 件のコメント:
コメントを投稿