این سناریو را در نظر بگیرید: میخواهید یک برنامه به حالت بیکار بیفتد و تا حد ممکن حافظه آزاد کند، اما نمیخواهید آن را به طور کامل خاموش کنید زیرا ممکن است در هر زمانی دوباره وارد عمل شود.
این وضعیتی است که اندرو او هنگام پیشنهاد GCColectionMode.Maximal با آن مواجه شد. وی مشکل را اینگونه توصیف کرد. برخی از اجزای ما منابعی را مصرف کردند که میتوانستند آزاد شوند. برای مثال، GC مقداری حافظه متعهد را برای ارائه درخواستهای اختصاصی نگه میدارد. اگر برنامه به طور فعال از حافظه استفاده کند، منطقی است، اما اگر برنامه برای مدت طولانی بیکار بماند، هدر خواهد بود. در سناریوی کانتینر، اگر فرآیند بیکار تا حد امکان منابع زیادی را که برای افزایش استقرار تراکم اشغال کرده از دست بدهد، برای کل سیستم مفید خواهد بود. این ویژگی با نام GCCollectionMode.Aggressive در ماه ژوئن برای نسخه NET 7. معرفی شد. برای استفاده از آن، دستور GC.Collect(GCCollectionMode.Aggressive); را فراخوانی کنید.
توجه: در زمان نگارش، GCCollectionMode.Aggressive را نمی توان در اسناد رسمی یافت. IntelliSense ویژوال استودیو آن را اینگونه توصیف میکند: «از جمعآورنده زباله میخواهد تا جایی که ممکن است حافظه را آزاد کند.».
https://asaco-it.com/wp-content/uploads/2020/06/Asset-4online-e1595754789705.png00Adloginhttps://asaco-it.com/wp-content/uploads/2020/06/Asset-4online-e1595754789705.pngAdlogin2022-11-25 09:01:022022-12-07 10:17:03دات نت هفت مجموعه زباله های تهاجمی را برای Kubernetes اضافه می کند