成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

.Net8 GC堆對于云原生的支持

開發 前端
.Net8之前進行此操作會失敗,因為GC并沒有支持。.Net8則進行了一定程度的支持,可以調用_RefreshMemoryLimit API來使用新的內存限制更新GC。

1.前言

云原生跟人工智能可能是未來的方向,.Net8里面為了對于提高云原生支持的成本效益。可以通過GC降低內存限制來縮減資源消耗以及擴展內存資源提升性能。

2.概述

.Net8之前進行此操作會失敗,因為GC并沒有支持。.Net8則進行了一定程度的支持,可以調用_RefreshMemoryLimit API來使用新的內存限制更新GC。

反射調用此API:

MethodInfo refreshMemoryLimitMethod = typeof(GC).GetMethod(
    "_RefreshMemoryLimit", BindingFlags.NonPublic | BindingFlags.Static);
refreshMemoryLimitMethod.Invoke(null, Array<object>.Empty);

以上代碼調用之后,它可以自動縮減與擴展云原生相關的內存堆大小。以便更好適應云原生。

還可以刷新與內存限制相關的一些 GC 配置設置。以下代碼片段將堆硬限制設置為 100 兆字節 (MiB):

AppContext.SetData("GCHeapHardLimit", (ulong)100 * 1024 * 1024);
MethodInfo refreshMemoryLimitMethod = typeof(GC).GetMethod(
    "_RefreshMemoryLimit", BindingFlags.NonPublic | BindingFlags.Static);
refreshMemoryLimitMethod.Invoke(null, Array<object>.Empty);

在使用此API之前,它有幾個限制,需要注意下
1.由于_RefreshMemoryLimit API是專用的,因此需要通過專用反射來調用它。
2.不支持32位平臺,比如windows/linux的32位或者arm32指令集。
3.調用此API不一定能成功,因為如果限制或者擴展GC內存過于激進的話,它會返回失敗。如果出現這種情況,請考慮調用 

GC.Collect(2, GCCollectionMode.Aggressive) 以收縮當前內存使用量,然后重試。
4.如果縱向擴展內存限制超出GC認為進程在啟動期間可以處理的大小,則_RefreshMemoryLimit 調用將成功,但它使用的內存不能超過它所認為的限制。

3.原理

_RefreshMemoryLimit實際調用的是QCall也即是GCInterface_RefreshMemoryLimit。而后者里面刷新了GC堆動態和靜態數據,以便適應C#源碼層面適配的云原生擴展和伸縮。

GCHeapUtilities::GetGCHeap()->RefreshMemoryLimit();

然后

int gc_heap::refresh_memory_limit()
{
    refresh_memory_limit_status status = refresh_success;


    if (GCConfig::GetGCTotalPhysicalMemory() != 0)
    {
        return (int)status;
    }


    GCToEEInterface::SuspendEE(SUSPEND_FOR_GC);
    //此處生路一萬行   
 }

我們看到它掛起了其它線程的操作,進行了GC的SuspendEE操作。停止了其它線程,以便操作當前線程。

參考:https://learn.microsoft.com/zh-cn/dotnet/core/whats-new/dotnet-8#garbage-collection

責任編輯:武曉燕 來源: 江湖評談
相關推薦

2023-11-17 13:42:06

.NET8C#工具

2023-07-11 00:17:58

.Net8AOTC

2023-09-11 08:40:34

AOTVMP代碼

2023-12-15 17:09:28

.NET8Primitives性能

2023-11-17 08:52:32

.NET8C#

2023-11-06 10:03:01

.Net8類型轉換

2024-08-30 09:21:28

2023-07-09 23:55:16

C++RoslynILC

2024-11-07 12:33:47

2025-02-24 02:00:00

.NET8Web開發

2023-12-27 07:33:54

2021-05-10 11:16:28

云計算開源云原生

2019-08-12 11:00:23

云計算費用DIY

2024-11-12 07:28:39

2025-04-02 07:40:30

2023-01-04 17:42:22

KubernetesK8s

2023-11-15 09:34:27

.NET 8代碼生成器

2024-09-29 15:21:01

2012-08-15 14:44:53

GC

2009-12-15 17:05:59

.NET 2003
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品美女久久久久久免费 | 欧美色性| 国产在线精品区 | 日韩一区二区三区四区五区六区 | 日本久久一区二区三区 | 99久久久久久99国产精品免 | 在线观看中文字幕一区二区 | 国产在线看片 | 91网站视频在线观看 | 黄色在线免费播放 | 国产美女在线精品免费 | 羞羞视频网站免费看 | 国产99小视频 | 久久精品美女 | 亚洲国产精品福利 | 成人欧美一区二区三区在线播放 | 亚洲精品www | 精品免费视频 | 精品免费国产一区二区三区四区介绍 | 日韩免费看视频 | 免费一级毛片 | 九九色综合 | 爱草在线 | 欧美成年人网站 | 免费激情| 久久婷婷av | 精品网| 天天爽一爽 | 在线播放国产一区二区三区 | 成人欧美一区二区三区在线观看 | 日韩精品在线观看网站 | 亚洲福利av | 超碰精品在线观看 | www.伊人.com | 国产小视频在线观看 | 国产成人黄色 | 第四色狠狠 | 高清人人天天夜夜曰狠狠狠狠 | 免费小视频在线观看 | 国产成人精品一区二区三区 | 中文字幕不卡在线88 |