dis
Python のライブラリを使用して実験し、パフォーマンスを理解しようとしています。以下は、私が試した実験と結果です。
import dis
def myfunc1(dictionary):
t = tuple(dictionary.items())
return t
def myfunc2(dictionary, func=tuple):
t = func(dictionary.items())
return t
>>> dis.dis(myfunc1)
4 0 LOAD_GLOBAL 0 (tuple)
3 LOAD_FAST 0 (dictionary)
6 LOAD_ATTR 1 (items)
9 CALL_FUNCTION 0
12 CALL_FUNCTION 1
15 STORE_FAST 1 (t)
5 18 LOAD_FAST 1 (t)
21 RETURN_VALUE
>>> dis.dis(myfunc2)
4 0 LOAD_FAST 1 (func)
3 LOAD_FAST 0 (dictionary)
6 LOAD_ATTR 0 (items)
9 CALL_FUNCTION 0
12 CALL_FUNCTION 1
15 STORE_FAST 2 (t)
5 18 LOAD_FAST 2 (t)
21 RETURN_VALUE
今、私はそれを理解しています...
- 左端の
4
&は行番号です5
- 中央の列は、マシンによって呼び出されるオペコードです
- 右側の列はオブジェクトです ( opargs ?)
...しかし、これはパフォーマンスに関して何を意味するのでしょうか? どちらの関数を使用するかを決定しようとしている場合dis
、2 つの関数を比較するためにどのように使用しますか?
前もって感謝します。