Pythonで大規模な配列のパフォーマンス(append編)
list
まずは定番のlist型
l = [1,2,3] for i in range(10**7): l.append(i)
5.7秒、1.6GB
set
早いと評判のset型
s = set([1,2,3]) for i in range(10**7): s.add(i)
6.4秒、2.4GB
一応こんなのも試す
s = set([1,2,3]) for i in range(10**7): s |= set([i])
14.6秒、2.4GB。意味無かったかも。オブジェクトを無駄に生成してるし
array
速そうなarray型
from array import array a = array('i', [1,2,3]) for i in range(10**7): a.append(i)
6.8秒、186MB。メモリ効率はいいけど遅いかなー
dict
ネタでdict型かと思いきや
d = {1:1, 2:2, 3:3} for i in range(10**7): d[i] = i
6.2秒、3.1GB。思ったより早いw
結論
なんか正直どれでもいいような><。サイズが大きいので、メモリアクセスがネックになってて、どうでも良いのかもしれない