亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

如何池化.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

东辽县| 涟水县| 茌平县| 南城县| 利辛县| 开江县| 平远县| 徐闻县| 闸北区| 延庆县| 大英县| 苍溪县| 宜良县| 泽州县| 太保市| 玉田县| 随州市| 湖南省| 八宿县| 天等县| 西峡县| 九江市| 家居| 锦屏县| 文成县| 霍邱县| 桐梓县| 斗六市| 云南省| 南城县| 凤凰县| 天峻县| 永城市| 璧山县| 景洪市| 常山县| 甘洛县| 阿拉善右旗| 安顺市| 娱乐| 天镇县|