PHP कार्यक्रमों (ड्रूपल मॉड्यूल इत्यादि) में भावी मेमोरी लीक से बचने की कोशिश में, मैं सरल PHP स्क्रिप्ट्स के साथ गड़बड़ कर रहा हूं जो स्मृति को रिसाव करता है।यह सरल PHP स्क्रिप्ट रिसाव स्मृति क्यों करता है?
क्या एक PHP विशेषज्ञ मुझे यह जानने में मदद कर सकता है कि इस स्क्रिप्ट के बारे में स्मृति उपयोग लगातार चढ़ने का कारण बनता है?
विभिन्न पैरामीटर बदलने, इसे स्वयं चलाने का प्रयास करें। परिणाम दिलचस्प हैं। संदेश यह है:
<?php
function memstat() {
print "current memory usage: ". memory_get_usage() . "\n";
}
function waste_lots_of_memory($iters) {
$i = 0;
$object = new StdClass;
for (;$i < $iters; $i++) {
$object->{"member_" . $i} = array("blah blah blha" => 12345);
$object->{"membersonly_" . $i} = new StdClass;
$object->{"onlymember"} = array("blah blah blha" => 12345);
}
unset($object);
}
function waste_a_little_less_memory($iters) {
$i = 0;
$object = new StdClass;
for (;$i < $iters; $i++) {
$object->{"member_" . $i} = array("blah blah blha" => 12345);
$object->{"membersonly_" . $i} = new StdClass;
$object->{"onlymember"} = array("blah blah blha" => 12345);
unset($object->{"membersonly_". $i});
unset($object->{"member_" . $i});
unset($object->{"onlymember"});
}
unset($object);
}
memstat();
waste_a_little_less_memory(1000000);
memstat();
waste_lots_of_memory(10000);
memstat();
मेरे लिए, उत्पादन होता है:
current memory usage: 73308
current memory usage: 74996
current memory usage: 506676
[सेट किए बिना अधिक वस्तु सदस्यों को संपादित]
मैं समस्या को अलग करने के लिए, एक समय में लूप के लिए लाइनों को हटाने का प्रयास करूंगा। –