日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

c# 定位内存快速增长_c#如何避免内存分配瓶颈以提高多线程性能

發(fā)布時(shí)間:2025/3/19 C# 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c# 定位内存快速增长_c#如何避免内存分配瓶颈以提高多线程性能 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我使用C#作為研究工具,經(jīng)常需要運(yùn)行CPU密集型任務(wù),例如優(yōu)化.從理論上講,我應(yīng)該能夠通過(guò)多線程化代碼來(lái)提高性能,但實(shí)際上當(dāng)我使用與工作站上可用內(nèi)核數(shù)量相同的線程數(shù)時(shí),我通常會(huì)發(fā)現(xiàn)CPU仍然只運(yùn)行在25 %-50%的最大值中斷代碼以查看所有線程正在做什么強(qiáng)烈建議內(nèi)存分配是瓶頸,因?yàn)榇蠖鄶?shù)線程將等待新語(yǔ)句執(zhí)行.

一種解決方案是嘗試重新設(shè)計(jì)我的所有代碼,以提高內(nèi)存效率,但這將是一項(xiàng)龐大而耗時(shí)的任務(wù).但是,由于我的工作站上有大量?jī)?nèi)存,我想知道我是否可以通過(guò)設(shè)置不同的線程來(lái)回避這個(gè)問(wèn)題,這樣他們每個(gè)人都有自己的私有內(nèi)存池來(lái)工作.當(dāng)然,某些對(duì)象仍然需要在所有線程之間公開(kāi),否則將無(wú)法為每個(gè)線程指定任務(wù)或收集結(jié)果.

有誰(shuí)知道在C#中這種方法是否可行,如果有的話(huà),我應(yīng)該怎么做呢?

解決方法:

如果您有內(nèi)存分配瓶頸,您應(yīng)該:

>使用“對(duì)象池”(如@MartinJames所說(shuō)).應(yīng)用程序啟動(dòng)時(shí)初始化對(duì)象池.對(duì)象池應(yīng)該提高堆分配的性能.

>使用結(jié)構(gòu)(或任何值類(lèi)型)作為局部變量,因?yàn)槎褩7峙浔榷芽斓枚?

>避免隱式內(nèi)存分配.例如,當(dāng)您將項(xiàng)目添加到List<>:

If Count already equals Capacity, the capacity of the List is

increased by automatically reallocating the internal array, and the

existing elements are copied to the new array before the new element

is added (source MSDN).

>避免拳擊.這個(gè)很貴:

In relation to simple assignments, boxing and unboxing are

computationally expensive processes. When a value type is boxed, a new

object must be allocated and constructed. To a lesser degree, the cast

required for unboxing is also expensive computationally. (source MSDN)

>避免使用捕獲變量的lambda表達(dá)式(因?yàn)閷椴东@的變量創(chuàng)建新對(duì)象)

標(biāo)簽:c,memory-management,multithreading,heap-memory,performance

來(lái)源: https://codeday.me/bug/20190529/1177267.html

總結(jié)

以上是生活随笔為你收集整理的c# 定位内存快速增长_c#如何避免内存分配瓶颈以提高多线程性能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。