यह एक PHP 5.3 क्ली एप्लिकेशन से संबंधित है जो बहुत से डेटा को जटिल तरीके से संसाधित करता है, घंटों तक चलने में। किसी ने पाया कि कचरा संग्रह बंद करने से यह तेजी से एक बड़ा सौदा चला सकता है (शायद 50% तक)।PHP का कचरा कलेक्टर क्यों perfomance धीमा, और इसके बिना स्मृति का प्रबंधन कैसे करें?
एकमात्र लेख जो मैंने देखा है, इस प्रदर्शन हिट का उल्लेख है http://derickrethans.nl/collecting-garbage-performance-considerations.html। मुझे यकीन नहीं है कि मैं इसे पूरी तरह से पालन करता हूं, लेकिन ऐसा लगता है कि यह केवल कई परिपत्र संदर्भों के साथ कोड पर लागू होता है।
क्या कोई इस पर कुछ प्रकाश डाल सकता है?
इसके अलावा, हमने जीसी बंद कर दिया है, क्या स्मृति को मैन्युअल रूप से कम करने का कोई तरीका है? अनसेट() का उपयोग करने का सुझाव दिया गया है। एक त्वरित परीक्षण से पता चला है कि ऑब्जेक्ट के आकार के बावजूद अस्सी या तो बाइट अनसेट() द्वारा मुक्त किया जाता है। इससे पता चलता है कि यह संदर्भ को केवल परेशान कर रहा है, जो मैंने ऑनलाइन पढ़ा है। क्या मैं यह सोचने में सही हूं कि ये अस्सी बाइट वैसे भी मुक्त हो जाएंगे, कचरा संग्रह के बिना भी, जब चर का दायरा निकलता है?
मैंने सोचा था कि यह मामला हो सकता है, लेकिन मैनुअल बहुत स्पष्ट नहीं है। तो, क्या नियमित रूप से अक्षम करना असंभव है? (ऐसा नहीं है कि मैं बस दिलचस्पी लेना चाहता हूं) – naomi
@ नाओमी हां, आप इसे अक्षम नहीं कर सकते हैं। इसका कोई कारण नहीं है (प्रभाव बहुत छोटा है) और क्योंकि आप स्मृति को स्वयं PHP के भीतर से मुक्त नहीं कर सकते हैं ('अनसेट()' ऐसा नहीं करता है) आपको एक बड़ी समस्या होगी: डी – KingCrunch