91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何池化.NET內存流以解決大內存堆分配問題

發布時間:2021-12-06 14:29:40 來源:億速云 閱讀:128 作者:柒染 欄目:大數據

這篇文章給大家介紹如何池化.NET內存流以解決大內存堆分配問題,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

與很多依賴于標記-清理的垃圾回收器的語言一樣,C#也會在頻繁分配內存或分配大塊內存時產生性能問題。微軟必應的高級軟件開發工程師Ben Watson,就曾在使用MemoryStream類的時候遇到了這種問題。在他的Writing High-Performance .NET Code一書中,他寫道,

在某個飽受大量LOH(大對象堆)分配之苦的應用中,我們發現如果將某種類型的對象保存在池中,就能解決99%的LOH問題。這個對象就是我們在網絡中序列化和傳輸位的MemoryStream。為了避免碎片,我們保存了一個MemoryStream對象的隊列,盡管實際實現要復雜得多,但理論上來說基本如此。每次MemoryStram對象釋放的時候,就將其放回池中以供復用。

在此之后微軟將他的代碼放到了Microsoft.IO.RecycableMemoryStream類中。該類是傳統的內存流的代替品。在最簡單的情況下,可以用manager.GetStream代替new MemoryStream

注意這個流管理器是線程安全的,并且應該在進程中一直使用。

《華盛頓郵報》作者Ben Watson說,這個工具被優化后要執行如下部分:

  • 利用合并的緩沖區消除大對象堆分配

  • 避免內存泄漏,線程池擁有邊界

  • 避免內存碎片

  • 提供出色的可調試性

  • 提供性能指標跟蹤

關于如何池化.NET內存流以解決大內存堆分配問題就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南和县| 宁都县| 唐海县| 师宗县| 五大连池市| 会宁县| 双鸭山市| 安新县| 和顺县| 太原市| 克山县| 垫江县| 英山县| 宁海县| 恩施市| 江城| 漳州市| 武隆县| 汽车| 晋宁县| 盈江县| 凤城市| 永福县| 弥勒县| 林西县| 化德县| 兴城市| 饶河县| 资溪县| 绥棱县| 长治县| 襄汾县| 扎兰屯市| 绥中县| 平凉市| 玉田县| 镇原县| 施秉县| 东明县| 滁州市| 女性|