मैं कोड है, जो एक सरलीकृत रूप में, इस तरह दिखता है:मेमोरी रिसाव बवंडर के 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()
जब मैं इसे चलाने के स्मृति पदचिह्न समय के साथ कम या ज्यादा सीध में बढ़ते रहते हैं। अगर, हालांकि, मैं gen.engine
नेस्टिंग निकालें:
@gen.engine
def go_for_it():
while True:
r = yield gen.Task(client.fetch, 'http://localhost:8888/')
स्मृति उपयोग लगातार बनी हुई है।
मै मैक ओएस एक्स और लिनक्स दोनों पर टॉरनाडो 2 के विभिन्न संस्करणों के साथ इस मुद्दे को पुन: पेश करने में कामयाब रहा हूं। कोई भी विचार इस समस्या का कारण क्या हो सकता है?
बस चीज़ की तरह दिखता है। इसका परीक्षण करेंगे। धन्यवाद! –
इसका परीक्षण किया और यह काम करता है। प्रतिभाशाली! –