來源:濟南小老虎
.NET Core是一個開源通用的開發框架,具有跨平臺能力,我們在享受其性能飆升的同時,也面臨了一些問題,通過觀察 NetCore 程式的線上運行情況發現 ,負載高的情況下應用程式占用記憶體較大,本文將針對這個問題展開討論,對比分析不同GC作業模式下的.NetCore性能與記憶體管理的表現,通過查找資料,得知.Net Core的GC作業模式大致可以分為四種作業模式,接下來直接針對這四種模式進行測驗,下文列出了每種模式的配置方式 、程式記憶體占用情況與壓測聚合報告:
服務器:CPU : E5-2609 v3 @ 1.9G
記憶體 : 8G,
測驗工具:jmeter 100個執行緒 10萬次請求,
作業模式配置可以在專案檔案中進行修改
<ServerGarbageCollection>false</ServerGarbageCollection>
ConcurrentGarbageCollection>
也可以直接修改發布包中的runtimeconfig檔案,
一 、Concurrent & Workstation GC (作業站模式,啟用并發垃圾回收)


二、Background & Workstation GC (作業站模式 ,禁用并發垃圾回收)
三 、Concurrent & Server GC (服務器模式,啟用并發垃圾回收)

四 、Background & Server GC (服務器模式,禁用并發垃圾回收)



五 、結論
通過對比四個測驗結果可以看出,作業站模式記憶體控制要明顯優于服務器模式,gc作業頻繁,但是隨之帶來的后果是性能的下降,可以看出服務器模式的相應時間和吞吐量要優于作業站模式,其中服務器模式是默認的作業模式,以上測驗結果僅供參考,通過反復的測驗,結果大致不變,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/91598.html
標籤:.NET Core
