首页 > 编程语言 >Java21对虚拟线程进行http压测使用不同的GC

Java21对虚拟线程进行http压测使用不同的GC

时间:2023-11-05 20:34:29浏览次数:60  
标签:Java21 http G1 压测 jar 分代 GC 内存 ZGC

JDK21默认GC是G1.
JDK21除了G1外,还可以使用ZGC(Java11预览、Java15正式版),Java21在ZGC基础上继续推出了分代ZGC,目前还是试行阶段。

开启ZGC:

java -XX:+UseZGC -jar myapp.jar

开启ZGC,并试用分代ZGC

java -XX:+UseZGC -XX:+ZGenerational -jar myapp.jar

以下的对一个启用tomcat虚拟线程的spring boot 项目分别以默认GC/ZGC/分代ZGC进行高并发测试,测试过程中,对该app占用操作系统的物理内存进行统计,然后形成统计折线图:

三种GC下的压测对并发性能几乎无差别的情况下,三者的内存表现大为不同,特别是G1与两个ZGC的差异尤为明显。
虽然本次比较测试的场景比较单一,但大致能看出ZGC的垃圾回收效率比G1高。
ZGC在垃圾回收的优势主要是:

  • 低卡顿: 最大暂停时间不超过10 ms
  • 高吞吐: 短时间可以回收大量内存
  • 大堆内存支持:对于大规模的应用程序,ZGC 的能力非常有价值,可以降低碎片化的影响。
  • 分区化处理:对不同大小的内存进行分区化处理,可以加快小内存回收

代码已上传gitee

标签:Java21,http,G1,压测,jar,分代,GC,内存,ZGC
From: https://www.cnblogs.com/jiayuan2006/p/17811086.html

相关文章

  • 小程序性能提速大作战:少点HTTP请求,多点性能!
    引言:嗨,各位小程序魔法师们,是不是常常被小程序的加载速度拖拖拉拉?别担心,小编今天要带你们探讨一项神奇的技能——减少HTTP请求,让你的小程序速度飙升!我们要玩得开心,一切都要如丝滑般流畅!背景:小程序性能提速的关键之一就是减少HTTP请求。过多的请求会导致小程序的加载速度变得缓慢,影......
  • redhat --修改时区 转发 https://www.cnblogs.com/rongren/p/12600869.html
    LINUXredhat修改时间 在LINUX系统中,时间分为两个部分,一个是系统时间,只针对运行时,重启后就无用,二是主板时间,系统重启后,自动从主板中获取时间。一、查看时间  date命令:查看当前时间二、修改时间 时间修改有两种方法(一)修改系统时间,然后执行命令从系统同步时间 1、......
  • 8. 从零用Rust编写正反向代理, HTTP改造篇之HPACK原理
    wmproxywmproxy是由Rust编写,已实现http/https代理,socks5代理,反向代理,静态文件服务器,内网穿透,配置热更新等,后续将实现websocket代理等,同时会将实现过程分享出来,感兴趣的可以一起造个轮子法项目++wmproxy++gite:https://gitee.com/tickbh/wmproxygithub:https://github.com/tic......
  • http网络协议及fiddler使用
    请求:请求行(请求方法 URL 协议/版本号)请求头(以键值对的形式展示:客户端的属性信息)请求体(格式:name=value,多个参数用&隔开) URL组合 http和https的区分相同点:都是协议,都可以用来传输数据不同点:http不加密,不安全;https加密(公网使用);http常用端口号是80,https常用......
  • 华为云云耀云服务器L实例评测|企业项目最佳实践之压测 (十一)
    十二、云服务器压测:服务器压测可以选择工具sysbench,它可以模拟几千个线程并发的访问实例。作为一款广泛使用的开源模块化的、跨平台、多线程基准测试工具,sysbench主要用于评估服务器系统在不同负载条件下的性能表现。sysbench具有简单易用性、高度灵活性、强大功能等特点,由主要我们......
  • 二十六、QT发送http请求并解析返回的json数据
    1.使用的模块和类模块:network类:QNetworkAccessManager、QNetworkRequest、QNetworkReply、QJsonDocument、QJsonObject、QJsonArrayQSslSocket::sslLibraryBuildVersionString();:查看当前使用的ssl版本,访问HTTPS时需要使用、复制libcrypto-1_1-x64.dll和libssl-1_1......
  • Mysql为什么存储表数据为什么不能超过2000万行,深度解释 转发 https://www.toutiao.co
    下面是我朋友的面试记录:面试官:讲一下你实习做了什么。朋友:我在实习期间做了一个存储用户操作记录的功能,主要是从MQ获取上游服务发送过来的用户操作信息,然后把这些信息存到MySQL里面,提供给数仓的同事使用。朋友:由于数据量比较大,每天大概有四五千多万条,所以我还给它做了分表的操......
  • httpURLConnection 请求发起post请求
     常见请求头,在post请求之前先了解一下,请求相关的基础 关于post请求的方式比get 多了很多配置,其实大致一样,本想将get示例和post写在一起,这个博客功能有时有问题一直在灰色的编辑框中跳不出去,只能另起一篇博客。privatevoiddoPost(Strings){try{//......
  • 【Web】https 与 http 的区别
    一、基本概念http:超文本传输协议,一种网络传输协议,一个客户端和服务器请求和应答的标准(TCP)。https:简单讲就是在http基础上使用SSL或TLS对请求和响应进行加密,建立一个信息安全通道。https工作原理:客户端使用httpsurl访问服务器,要求与web服务器建立ssl连接web服务器......
  • 安卓快速掌网络请求HttpUrlConnection
    HttpURLConnection是Java标准库中的一部分,它不依赖于特定的Android版本。,从Android9(API级别28)开始,Google官方推荐使用更现代化的网络库,例如OkHttp或Volley。这些库提供更简洁、强大和易用的API,并具备更好的性能和安全性。但是仍然可以用这个简单实现了解网络请求原......