এই একটি বিষয়ে আমার স্বীকারোক্তিমূলক মতামত অনুসারে, কমপক্ষে কোনও লাইব্রেরিতে শারীরিক ফাঁস হওয়ার কোনও অজুহাত নেই যা লক্ষ্য করে ব্যাপকভাবে প্রয়োগ করা যায় be সুতরাং আমি জিটিকে + বিকাশকারীদের এটি ঠিক না করা পর্যন্ত বাগটি খুঁজতে চাই।
কোনও লাইব্রেরির atexit
কলব্যাকগুলি নিবন্ধভুক্ত করা যথেষ্ট ন্যূনতম যে কোনও স্মৃতি মেমরি মুক্ত করার জন্য এটি কমপক্ষে লোড হওয়ার পরে বরাদ্দ করে। যদি এটি কিশোর বরাদ্দগুলির একটি নৌকা বোঝাই ব্যয় এড়াতে চায় তবে এটি প্রথমে করা উচিত নয়।
এমনকি সবচেয়ে অলস প্রোগ্রাম যা কেবলমাত্র একবারে মেমরির কিশোর অংশগুলির একটি নৌকা বোঝা বরাদ্দ করতে চায় একটি সরল ক্রমযুক্ত ক্রমিক বরাদ্দকারী ব্যবহার করতে পারে যা কেবল শাটডাউনে সমস্ত স্মৃতি মুছে দেয়। যদি বরাদ্দকারী এমনকি প্রান্তিককরণের সাথেও ডিল করতে না চায়, তবে এটি কেবলমাত্র প্রতিটি একক অংশকে সর্বাধিক প্রান্তিককরণের সীমানায় প্যাড করতে পারে। যদি স্বতন্ত্রভাবে সেই সমস্ত কিশোর অংশগুলি মেমরির মুক্ত না করে দ্রুত শাটডাউন সময়ের সাথে উপকৃত হতে সক্ষম হয়, তবে এটি তেমনি তুচ্ছ প্রচেষ্টাটির বিনিময়ে তাত্পর্যপূর্ণ প্রচেষ্টার বিনিময়ে একটি বৃহত্তর ব্যবসায়িক উপকারে দাঁড়িয়েছে যা এই জাতীয় ক্রমিক বরাদ্দকারীকে স্মৃতিটিকে একটি সরল অনুক্রমিক ফ্যাশনে পোল করে with তুলনায় অনেক দ্রুত বরাদ্দmalloc
এবং আরও ক্যাশে-বান্ধব মেমরি প্যাটার্নগুলি, যখন লাইব্রেরিটি করা হয় তখন কেবল বরাদ্দকারী দ্বারা চালিত সামঞ্জস্যের সমস্ত বড় ব্লকগুলি মুক্ত করতে হয়। তারপরে সমস্ত গ্রন্থাগারকে তাদের malloc
কলগুলি প্রতিস্থাপন করতে হবে যার জন্য তারা এর free
মতো কিছু নিয়ে বিরক্ত করে না seq_malloc
এবং লোড হওয়ার পরে বরাদ্দকৃত সমস্ত স্মৃতি মুক্ত করার জন্য seq_purge
একটি atexit
কলব্যাকে কল করে।
অন্যথায় আপনি এই মজাদার গ্রন্থাগারটি আপনার মেমরি ফাঁস সনাক্তকরণ সরঞ্জামগুলিতে বার্তাগুলি বিশৃঙ্খলা করতে পেয়েছেন এখন আপনাকে ফিল্টার আউট করতে হবে। সবচেয়ে খারাপ, যদি আপনি এগুলি পদ্ধতিগতভাবে ছাঁটাই না করেন তবে তারা আপনার নিজের অ্যাপ্লিকেশনটিতে ফাঁসগুলিকে অস্পষ্ট করতে পারে এবং আপনার সহকর্মীরা এটিকে উপেক্ষা করার অভ্যাস বিকাশ করতে পারে এবং আপনার নিজের দলকে আটকাতে প্রথমে ফাঁস সনাক্তকরণ সরঞ্জামগুলির কার্যকারিতা হ্রাস করতে পারে ফাঁস কোড ঠেলাঠেলি। এটি স্থূল এবং কুরুচিপূর্ণ এবং সর্বোপরি আমি উপরোক্ত সমাধানটি ব্যবহার করা কতটা তুচ্ছ তা বিবেচনা করে ইচ্ছাকৃতভাবে এটি করার পক্ষে যুক্তিগুলি খুঁজে পাই না।
লজিকাল ফুটো (আরও জটিল ধরণের যা এমনকি জঞ্জাল সংগ্রহের বিরুদ্ধে রক্ষা করতে পারে না) আরও জটিল সমস্যা এবং সেখানে আমি স্বল্প-জীবনী প্রোগ্রামগুলির পক্ষে যুক্তিযুক্ত ফাঁস হওয়ার কিছুটা ন্যায়সঙ্গততা পেতে পারি যেহেতু তারা যে বরাদ্দকৃত সমস্ত স্মৃতি মুছে ফেলেছে শাটডাউন যেহেতু যৌক্তিক ফাঁস এড়াতে রিসোর্স ম্যানেজমেন্ট সম্পর্কে প্রচুর চিন্তাভাবনা প্রয়োজন (জিসি রয়েছে এমন ভাষাগুলিতে আরও বেশি)। এমনকি শারীরিক ফাঁস এড়াতে আমি কোনও যুক্তিসঙ্গত অজুহাত পাই না যে এমনকি অতি স্বল্প পরিপ্রেক্ষিতেও এড়াতে তারা কতটা নগণ্য।
যাইহোক, খুব কমপক্ষে আমি ভ্যালগ্রাইন্ডে ফাঁসগুলি ফিল্টার করে ফেলতাম যাতে তারা কমপক্ষে আপনার নিজের দলের চিহ্নিত করার জন্য আপনার দলের দক্ষতার সাথে গোলযোগ না করে।