আমি ভয়ঙ্কর ত্রুটি-বার্তার মুখোমুখি হয়েছি, সম্ভবত-শ্রমসাধ্য প্রচেষ্টা দিয়ে, পিএইচপি স্মৃতিশক্তি হারিয়েছে:
123 লাইনে file.php- এ #### বাইটগুলি মজাদার মেমরির আকার (#### বাইট বরাদ্দ দেওয়ার চেষ্টা করা হয়েছে)
সীমা বাড়ানো
আপনি যদি জানেন যে আপনি কী করছেন এবং সীমাটি বাড়াতে চান মেমোরিটি দেখুন :
ini_set('memory_limit', '16M');
ini_set('memory_limit', -1); // no limit
সাবধান! আপনি কেবল লক্ষণটি সমাধান করছেন এবং সমস্যাটি নয়!
ফুটো নির্ণয়:
ত্রুটি বার্তা একটি লুপের সাথে থাকা একটি লাইনের দিকে ইঙ্গিত করে যা আমি বিশ্বাস করি যে মেমরি ফাঁস, বা অকারণে-জমে থাকা memory আমি memory_get_usage()
প্রতিটি পুনরাবৃত্তির শেষে বিবৃতি মুদ্রণ করেছি এবং সীমাটি না পৌঁছানো পর্যন্ত ধীরে ধীরে সংখ্যাটি বৃদ্ধি পেতে দেখতে পাচ্ছি:
foreach ($users as $user) {
$task = new Task;
$task->run($user);
unset($task); // Free the variable in an attempt to recover memory
print memory_get_usage(true); // increases over time
}
এই প্রশ্নের প্রয়োজনে ধরে নেওয়া যাক কল্পনাযোগ্যভাবে সবচেয়ে খারাপ স্প্যাগটি কোডটি কোথাও $user
বা কোথাও গ্লোবাল স্কোপে লুকিয়ে রয়েছে Task
।
কোন সরঞ্জামগুলি, পিএইচপি কৌশল বা ডিবাগিং ভুডো আমাকে সমস্যাটি খুঁজে পেতে এবং সমাধান করতে সহায়তা করতে পারে?