来源:济南小老虎

.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工作频繁,但是随之带来的后果是性能的下降,可以看出服务器模式的相应时间和吞吐量要优于工作站模式,其中服务器模式是默认的工作模式。以上测试结果仅供参考,通过反复的测试,结果大致不变。

最新文章

  1. Oracle OCP 1Z0-053 Exam Topics
  2. Java Web开发中MVC设计模式简介
  3. 《Android深度探索HAL与驱动开发》第四章阅读心得
  4. C#------获取最后一个&quot;/&quot;字符后面的所有内容
  5. Gensim进阶教程:训练word2vec与doc2vec模型
  6. 【C++】error C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型
  7. CODEVS1073 家族 (并查集)
  8. jdk 1.6 &amp; 1.7新特性
  9. 部署HBase远程访问的问题集合(Eclipse)
  10. 2.1.4 扫描器X-Scan查本机隐患
  11. IBOutlet &amp; IBAction
  12. iBatis核心框架浅析
  13. Spring AOP @Around @Before @After 区别
  14. 计算机17-3,4作业E
  15. js和jQuery的互相转换
  16. ESP8266 HTTP 项目(1)在刻度盘上进行ESP8266 NodeMCU模拟读取的步骤
  17. docker+kafka+zookeeper+zipkin的安装
  18. Swift 里 Array (一)内存结构
  19. SQL SERVICE中的锁
  20. 跟bWAPP学WEB安全(PHP代码)--PHP代码注入

热门文章

  1. [译]Vulkan教程(07)物理设备和队列家族
  2. ArrayList 与数组的“纠缠不清”的暧昧
  3. Leetcode题解 - BFS部分题目代码+思路(896、690、111、559、993、102、103、127、433)
  4. 小程序 if else
  5. css多余文本使用....代替
  6. Linux平台安装python的psutil包
  7. Java描述设计模式(05):原型模式
  8. APC的本质
  9. ASP.NET Core 2.2 WebApi 系列【四】集成Swagger
  10. (转)RocketMQ工作原理