this questionによれば、私は自分のラップトップでパフォーマンスをチェックしました。 、3の最高deque.popleft()vs list.pop(0)、パフォーマンス分析
10000ループ:ループあたり66マイクロ秒
python -m timeit 'l = range(10000)' 'l.pop(0)'
が与える:
驚くべきことに、私は
list
からpop(0)
がdeque
stuctureからpopleft()
よりも高速であることがわかりました
while:
python -m timeit 'import collections' 'l = collections.deque(range(10000))' 'l.popleft()'
ができます:
10000ループを、3最高:
:ループあたり 123マイクロ秒
はまた、私は同じ結果を見つけることjupyterのパフォーマンスをチェックします
%timeit l = range(10000); l.pop(0)
の10000ループ、3の最高:64.7マイクロ秒のループごと
from collections import deque
%timeit l = deque(range(10000)); l.popleft()
10000ループ、3の最高:理由は何122マイクロ秒のループごと
?
正しい解析では、n回ではなく1回だけ作成することを考慮する必要がありますか? – Ale
@Ale:はい、一度作成してください。あなたが創造+ポップを測定しない限り。コマンドラインのアプローチを示すために私の記事を編集しました(間にいくつかの研究を行いました) –