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のほうが軽そうな感じ?