آخرین تمرینهای تیم ملی فوتبال در سایه حمایت فوقالعاده مردم مکزیک
این مشکلات که از آن بهعنوان باگهای نرمافزاری سیستم یاد میشود، باعث ایجاد نرمافزارهای دیباگی شد که روی حافظه فعالیت میکردند و این نشتها را تشخیص میدادند. نرمافزارهایی چون BoundsChecker، Valgrind، Insure++ و memwatch برخی از همین ابزارهای دیباگ بودند.
زبانهای جاوا، سیشارپ، لیسپ و VB.NET قابلیت جمعآوری خودکار آشغال را دارند، اما در مقابل نشت حافظه مصون نیستند. برای مثال ممکن است یک برنامه در یک حلقه نامتنهای، اشیایی با رفرنسی از جنس خود بسازد که باعث میشود بخش زیادی از حافظه از دسترسی خارج گردد.
نشت حافظه، بهطور کلی با الگوریتم زیر بهسادگی قابل درک خواهد بود:
فرض کنید که ما اکنون روی پله شماره X ایستادهایم و هدف، پله شماره Y است. الگوریتم بهاین صورت انجام میشود که وقتی دکمهای فشار داده شد
تکهای حافظه تخصیص داده شود و برای بهخاطر سپردن شماره پله استفاده شود.
شماره پله داخل آن بخش از حافظه قرار داده شود.
آیا روی پله هدف ایستادهایم؟
اگر چنین است، کاری برای انجام دادن نیست. پایان.
در غیر اینصورت:
تا زمانی که پاها آزاد شوند باید صبر کنیم.
به پله مورد نظر برویم و حافظهای که دریافت کردهایم را آزاد کنیم.
در نگاه اول الگوریتم بدون نقص بهنظر میرسد، اما وقتی دقت کنیم، در صورتی که 200 بار پیغام درخواست به ماندن در همان پله اعلام شود، از آنجایی که در حالت درستی شرط، حافظه را آزاد نکردهایم، 200 خانه حافظه، بدون رفرنس باقی خواهد ماند و نشت عظیمی رخ خواهد داد.
آخرین تمرینهای تیم ملی فوتبال در سایه حمایت فوقالعاده مردم مکزیک
حسین کعبی: وقتی فیگو را در جام جهانی زدم....