نشت حافظه، قسمتی از حافظه است که آزاد نشده است، حتی اگر دیگر در ادامه اجرای برنامه مورد دسترسی قرار نگیرد. عمر بالای نرم افزار یکی از عوامل اصلی نشت حافظه است. علیرغم اقدامات صورت گرفته در زبان هایی مانند C و C++ مانند اشاره گرهای هوشمند، نقص های مربوط به نشت حافظه همچنان در کدهای C و C++ مشکل ساز است، به ویژه در برنامه های قدیمی که در این زبان ها نوشته شده اند. برای زبان هایی مانند Java جمع آوری زباله گرچه بخشی از مشکلات را حل نموده، اما مشکلات کارایی در خصوص این قابلیت وجود دارد. ابزارهای مختلفی برای تشخیص مشکلات مربوط به حافظه اصلی موجود است که می تواند زمان تست برنامه را کاهش دهد. این ابزارها به عنوان ابزارهای تحلیل پویا و ایستا دسته بندی می شوند. این ابزارها به برنامه نویسان کمک می کند تا کدی ایمن و عاری از خطای حافظه را بدون رخ دادن نشت حافظه و مسائل مرتبط بنویسند. این مقاله رویکردها و ابزارهای مختلف تشخیص نشت حافظه را، در دو دسته پویا و ایستا مورد بررسی قرار می دهد. ضمن بیان قابلیت و متد ارائه شده در هر روش، این رویکرد ها بر اساس شاخص های مختلف مانند میزان هزینه سربار و نرخ مثبت کاذب مقایسه و ارزیابی گردیده اند. نتایج این بررسی ها نشان داد که مسئله کارایی به عنوان یک عامل اثرگذار هنوز در شناسایی نشت حافظه مطرح بوده و می توان برای پژوهش های آتی موردتوجه قرار گیرد.