您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān).Net Core內(nèi)存回收模式及性能測試對比的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
.NET Core 兩種GC模式:
Server GC / Workstation GC
Server GC :
主要應(yīng)用于多處理器系統(tǒng),并且作為ASP.NET Core宿主的默認(rèn)配置。它會(huì)為每個(gè)處理器都創(chuàng)建一個(gè)GC Heap,并且會(huì)并行執(zhí)行回收操作。該模式的GC可以最大化吞吐量和較好的收縮性。這種模式的特點(diǎn)是初始分配的內(nèi)存較大,并且盡可能不回收內(nèi)存,進(jìn)行回收用時(shí)會(huì)很耗時(shí),并進(jìn)行內(nèi)存碎片整理工作。用一句簡單的話說,這個(gè)就是貪婪模式,通過盡可能多的獲得內(nèi)存和少回收來得到更好的性能。結(jié)果就是高內(nèi)存使用率性能較好。
Workstation GC :
主要應(yīng)用于單處理器系統(tǒng),Workstation GC盡可能地通過減少垃圾回收過程中程序的暫停次數(shù)來提高性能。低負(fù)載且不常在后臺(如服務(wù))執(zhí)行任務(wù)的應(yīng)用程序,可以在禁用并發(fā)垃圾回收的情況下使用工作站垃圾回收。特點(diǎn)是會(huì)頻繁回收,來阻止一次較長時(shí)間的回收。結(jié)果就是低內(nèi)存使用率性能較差。
簡單測試
以下測試結(jié)果都在同一臺計(jì)算機(jī)上,配置如下:
?Windows 7 Ultimate
?Intel Core I3-3220 @ 3.30 GHZ
?8G內(nèi)存,可用空間3GB
?SQL Server 2014
被測試的程序是ZKEACMS,首頁,單面壓力測試,5000個(gè)請求,1000個(gè)并發(fā)。測試結(jié)果如下:
Server GC :
響應(yīng)結(jié)果如下,大概167.81 Req/s,這個(gè)結(jié)果并不是每次都一樣,會(huì)有所偏差,僅供參考:
內(nèi)存使用漲到差不多600多M左右,期間會(huì)有上下上下浮動(dòng),情況如下圖所示:
經(jīng)過反復(fù)多次的測試,內(nèi)存最高時(shí)漲到800多M,這與可用內(nèi)存有關(guān)系,如果可用內(nèi)存更多,還會(huì)漲到1G或更高然后再掉下來:
Workstation GC :
響應(yīng)結(jié)果如下圖所示,大概151.33 Req/s,看起來是要比Server GC差一點(diǎn)點(diǎn),并且多次測試結(jié)果,總體都是更差些。
內(nèi)存使用情況一直在200M左右浮動(dòng),反復(fù)的壓力測試,也不會(huì)有大的大起大落,這與它積極的回收有關(guān)系:
內(nèi)存回收模式的切換
現(xiàn)在對.Net Core的不同的內(nèi)存回收模式產(chǎn)生的影響已經(jīng)有了一定的了解,那就可以看你的個(gè)人情況做出選擇了。.Net Core默認(rèn)的貪婪模式可以得到更好的性能,這沒有什么問題是,畢竟內(nèi)存不用放在那也是浪費(fèi)。當(dāng)然如果你的服務(wù)器上許多的程序在跑,并對內(nèi)存有較高的限制要求不要影響到其它的程序,那就要做一些配置了。
開發(fā)環(huán)境
在開發(fā)環(huán)境,你可以編輯你的項(xiàng)目文件,加上以下配置,重新生成即可:
<PropertyGroup> <ServerGarbageCollection>false</ServerGarbageCollection> </PropertyGroup>
生產(chǎn)環(huán)境
可以不用修改重新部署,直接到你的程序中找到 *.runtimeconfig.json,如:ZKEACMS.WebHost.runtimeconfig.json,修改"System.GC.Server": false,重啟程序即可:
"configProperties": { "System.GC.Server": false }
關(guān)于“.Net Core內(nèi)存回收模式及性能測試對比的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。