来源:济南小老虎html
.NET Core是一个开源通用的开发框架,具备跨平台能力,咱们在享受其性能飙升的同时,也面临了一些问题。经过观察 NetCore 程序的线上运行状况发现 ,负载高的状况下应用程序占用内存较大,本文将针对这个问题展开讨论,对比分析不一样GC工做模式下的.NetCore性能与内存管理的表现。经过查找资料,得知.Net Core的GC工做模式大体能够分为四种工做模式。接下来直接针对这四种模式进行测试,下文列出了每种模式的配置方式 、程序内存占用状况与压测聚合报告:服务器
服务器:CPU : E5-2609 v3 @ 1.9G并发
内存 : 8G。框架
测试工具:jmeter 100个线程 10万次请求。工具
工做模式配置能够在项目文件中进行修改性能
<ServerGarbageCollection>false</ServerGarbageCollection>测试
ConcurrentGarbageCollection>url
也能够直接修改发布包中的runtimeconfig文件。spa
经过对比四个测试结果能够看出,工做站模式内存控制要明显优于服务器模式,gc工做频繁,可是随之带来的后果是性能的降低,能够看出服务器模式的相应时间和吞吐量要优于工做站模式,其中服务器模式是默认的工做模式。以上测试结果仅供参考,经过反复的测试,结果大体不变。线程