7
我有代碼,以簡單的形式,看起來是這樣的:內存泄漏
from tornado import gen, httpclient, ioloop
io_loop = ioloop.IOLoop.instance()
client = httpclient.AsyncHTTPClient(io_loop=io_loop)
@gen.engine
def go_for_it():
while True:
r = yield gen.Task(fetch)
@gen.engine
def fetch(callback):
response = yield gen.Task(client.fetch, 'http://localhost:8888/')
callback(response)
io_loop.add_callback(go_for_it)
io_loop.start()
當我運行內存佔用量不斷隨着時間的推移或多或少的線性增加。但是,如果我刪除gen.engine
嵌套:
@gen.engine
def go_for_it():
while True:
r = yield gen.Task(client.fetch, 'http://localhost:8888/')
內存使用量保持不變。
我已經成功地在Mac OS X和Linux上重現了不同版本的龍捲風2的問題。任何想法可能是這個問題的原因?
看起來就是這樣。將測試它。謝謝! –
經過測試,它的工作原理。輝煌! –