मेरे पास एक जटिल पायथन सर्वर ऐप है, जो लगातार हर समय चलता है। नीचे इसका एक बहुत ही सरल संस्करण है।पिल्ला स्मृति उपयोग हमेशा के लिए बढ़ता है?
जब मैं पाइथन का उपयोग करके नीचे दिए गए ऐप को चलाता हूं; "पायथन मेन.py"। यह सीधे 8 एमबी रैम का उपयोग करता है, और राम के 8 एमबी पर रहता है, जैसा कि इसे करना चाहिए।
जब मैं इसे "pypy Main.py" का उपयोग करके चलाता हूं। यह 22 एमबी रैम का उपयोग करके शुरू होता है और समय के साथ राम उपयोग बढ़ता है। 30 सेकंड के बाद 50 एमबी के बाद, एक घंटे के बाद 60 एमबी पर।
यदि मैं "b.something()" को "पास" करने के लिए बदलता हूं तो यह स्मृति की तरह गड़बड़ नहीं करता है।
मैं ओएसएक्स 10.7.4 पर पाइप 1.9 का उपयोग कर रहा हूं, मैं अजगर के साथ अधिक रैम का उपयोग कर पाइप के साथ ठीक हूं।
क्या लंबे समय तक स्मृति खाने से पिटाई रोकने का कोई तरीका है?
import sys
import time
import traceback
class Box(object):
def __init__(self):
self.counter = 0
def something(self):
self.counter += 1
if self.counter > 100:
self.counter = 0
try:
print 'starting...'
boxes = []
for i in range(10000):
boxes.append(Box())
print 'running!'
while True:
for b in boxes:
b.something()
time.sleep(0.02)
except KeyboardInterrupt:
print ''
print '####################################'
print 'KeyboardInterrupt Exception'
sys.exit(1)
except Exception as e:
print ''
print '####################################'
print 'Main Level Exception: %s' % e
print traceback.format_exc()
sys.exit(1)
नीचे और समय की एक सूची उस समय राम उपयोग है (मैं इसे रात में चल छोड़ दिया)।
Wed Sep 5 22:57:54 2012, 22mb ram
Wed Sep 5 22:57:54 2012, 23mb ram
Wed Sep 5 22:57:56 2012, 24mb ram
Wed Sep 5 22:57:56 2012, 25mb ram
Wed Sep 5 22:57:58 2012, 26mb ram
Wed Sep 5 22:57:58 2012, 27mb ram
Wed Sep 5 22:57:59 2012, 29mb ram
Wed Sep 5 22:57:59 2012, 30mb ram
Wed Sep 5 22:58:00 2012, 31mb ram
Wed Sep 5 22:58:02 2012, 32mb ram
Wed Sep 5 22:58:03 2012, 33mb ram
Wed Sep 5 22:58:05 2012, 34mb ram
Wed Sep 5 22:58:08 2012, 35mb ram
Wed Sep 5 22:58:10 2012, 36mb ram
Wed Sep 5 22:58:12 2012, 38mb ram
Wed Sep 5 22:58:13 2012, 39mb ram
Wed Sep 5 22:58:16 2012, 40mb ram
Wed Sep 5 22:58:19 2012, 41mb ram
Wed Sep 5 22:58:21 2012, 42mb ram
Wed Sep 5 22:58:23 2012, 43mb ram
Wed Sep 5 22:58:26 2012, 44mb ram
Wed Sep 5 22:58:28 2012, 45mb ram
Wed Sep 5 22:58:31 2012, 46mb ram
Wed Sep 5 22:58:33 2012, 47mb ram
Wed Sep 5 22:58:35 2012, 49mb ram
Wed Sep 5 22:58:35 2012, 50mb ram
Wed Sep 5 22:58:36 2012, 51mb ram
Wed Sep 5 22:58:36 2012, 52mb ram
Wed Sep 5 22:58:37 2012, 54mb ram
Wed Sep 5 22:59:41 2012, 55mb ram
Wed Sep 5 22:59:45 2012, 56mb ram
Wed Sep 5 22:59:45 2012, 57mb ram
Wed Sep 5 23:00:58 2012, 58mb ram
Wed Sep 5 23:02:20 2012, 59mb ram
Wed Sep 5 23:02:20 2012, 60mb ram
Wed Sep 5 23:02:27 2012, 61mb ram
Thu Sep 6 00:18:00 2012, 62mb ram
हम्म को कैसे ट्विक करें। मैं इसे पुन: उत्पन्न नहीं कर सकता। पपी 1.9 (मैकपोर्ट्स से) और ओएस एक्स 10.6.8 के साथ, मुझे स्मृति उपयोग (जैसा कि 'शीर्ष' द्वारा रिपोर्ट किया गया है, आरएसआईजेई कॉलम से) लगभग 46 एम पर रहता है। यह एक बग रिपोर्ट के लायक हो सकता है। –
मुझे अभी भी उस प्रक्रिया को चल रहा है, इसके लिए नया डेटा पॉइंट: गुरु सितम्बर 6 9:02:26 2012, 63 एमबी रैम – DavidColquhoun
मैं इसे 1.yy का उपयोग करके पुन: उत्पन्न कर सकता हूं, लेकिन 1.9 ने इस समस्या को सही किया है – goncalopp