小编Mic*_*zcz的帖子

内存泄漏使用龙卷风的gen.engine

我的代码以简化形式显示如下:

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()
Run Code Online (Sandbox Code Playgroud)

当我运行它时,内存占用量或多或少地线性增加.但是,如果我删除了gen.engine嵌套:

@gen.engine
def go_for_it():
    while True:
        r = yield gen.Task(client.fetch, 'http://localhost:8888/')
Run Code Online (Sandbox Code Playgroud)

内存使用量保持不变.

我已经设法在Mac OS X和Linux上重现不同版本的龙卷风2的问题.任何想法可能是这个问题的原因?

python memory-leaks asynchronous tornado

7
推荐指数
1
解决办法
973
查看次数

标签 统计

asynchronous ×1

memory-leaks ×1

python ×1

tornado ×1