メモリの使用量を見てみる。
まずはlistから。
#!/usr/bin/python import time a = [ n + 1 for n in xrange(10 ** 7) ] time.sleep(10)
Python(Win) 160MB PyPy(Win) 40MB Python(Ubuntu) 320MB PyPy(Ubuntu) 80MB
int64だから倍になるのはわかる。
#!/usr/bin/python import time dic = dict((n, n + 1) for n in xrange(10 ** 7)) time.sleep(10)
Python(Win) 430MB PyPy(Win) 700MB Python(Ubuntu) 870MB PyPy(Ubuntu) 1150MB
これも同様だが、Ubuntuのdictは改善されているようだ。