メモリ使用量を見てみる

taskletとThreadのメモリ使用量の違いがどんな感じか見てみた。
ipython起動だけ => 10MB

import stackless

def foo():
    for i in range(5):
        print i
        stackless.schedule()

[stackless.tasklet(foo)() for j in range(100000)]

taskletを100000個作成 => 35MB

import threading

class Foo(threading.Thread):
    run(self):
        for i in range(5):
        print i

tasks = []
[tasks.append(Foo()) for j in range(100000)]

Threadのインスタンス100000個作成 => 120MB
んー、クラスと関数の違いがあるので比較していいのかよくわからんけども、taskletのほうが軽そうな感じ?