为什么升级JDK 11后堆外内存使用增长了?

文章首发地址

JDK 11堆外使用增长的原因

JDK 11堆外使用增长的原因可能有以下几个:

  • G1垃圾回收器的默认设置更改: JDK 11中的G1垃圾回收器默认开启了堆外内存分配,以减少Full GC时的STW时间。因此,如果应用程序使用了G1垃圾回收器,那么堆外使用量就可能增加。
  • NIO使用的增加: 随着应用程序对网络的使用越来越多,NIO(New Input/Output)的使用也越来越广泛。NIO使用了堆外内存来提高IO操作的性能,因此如果应用程序使用了NIO,那么堆外使用量就可能增加。
  • 直接内存的使用增加: 直接内存是一种堆外内存,可以通过ByteBuffer.allocateDirect()方法来分配。在JDK 11中,Java NIO库中的一些类(如MappedByteBuffer、DirectByteBuffer等)使用了直接内存,因此应用程序中对这些类的使用增加,也可能导致堆外使用量增加。

需要注意的是,堆外使用量的增加并不一定是一件坏事,因为堆外内存相比Java堆内存来说,有更好的性能和可控性,可以用于处理一些需要高性能的任务。但是,如果堆外使用量增加过多,就可能导致操作系统的内存资源不足,从而影响应用程序的稳定性和性能。

JDK 11 堆外增长和Netty的关系

JDK 11堆外使用增长和Netty是有关联的。Netty是一个高性能的网络通信框架,它使用堆外内存来缓存数据,以提高网络通信的效率。随着JDK 11堆外使用增长,Netty的性能也得到了进一步提升。

在JDK 11之前,堆外内存的分配和回收是比较慢的,因此Netty需要使用一些技巧来尽可能地减少堆外内存的分配和回收。而JDK 11的堆外使用增长功能使得堆外内存的分配和回收更加高效和稳定,这使得Netty在JDK 11环境下的性能得到了提升。

此外,JDK 11引入了一个新的API:VarHandle,它可以更好地支持对堆外内存的访问和操作,这使得Netty在处理大型字节缓存的数据时变得更加高效。因此,JDK 11堆外使用增长为Netty提供了更好的性能和稳定性,使其成为一个更加高效和可靠的网络通信框架。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/24472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单例模式:保证一个类只有一个实例

单例模式:保证一个类只有一个实例 什么是单例模式? 在软件开发中,有些类只需要一个实例,比如数据库连接池、线程池等。单例模式就是一种设计模式,用于确保一个类只有一个实例,并提供一个全局访问点。 实…

Android中的RecyclerView 优化

Android中的RecyclerView 优化 在Android开发中,RecyclerView是一种用于展示大量数据列表的高效、灵活的控件。由于RecyclerView常用于展示复杂的数据集,特别是在数据项很多的情况下,对其进行优化非常重要,以提高性能和用户体验。…

使用Go语言生成Excel任务表依赖图(Markdown文件mermaid图)

一、前言 在游戏中,任务是非常常见的玩法,可能会有主线任务,支线任务以及其它一些类型的任务,各任务可能还会有前置任务,即需要完成某个任务之后,才能做当前任务。在游戏开发中,配置表可以使用…

CentOS 搭建 Harbor 镜像仓库(图文详解)

本文目录 1. 下载 Harbor 安装包2. 解压3. 修改配置文件4. 安装 Harbor5. 修改 docker 配置6. docker 登录方式7. 访问 Harbor Web 界面8. 创建证书9. 生成证书10. 更新配置11. 网页登录 说明:在搭建 Harbor 镜像仓库之前,虚拟机要先安装 docker 和 dock…

k8s部署nginx访问Tomcat

1.nginx打包镜像 #1、编写DockerFilemkdir /opt/my_nginx_dockerfilecd /opt/my_nginx_dockerfile cat >default.conf<<EOF server {listen 80;listen [::]:80;server_name localhost;#access_log /var/log/nginx/host.access.log main;location / {root …

数据安全治理5大关键技术实践分享

近年来&#xff0c;国内外对数据安全的重视程度持续提升&#xff0c;数据安全技术领域发展备受关注。从2017-2021年Gartner发布的“数据安全技术成熟度曲线”研究报告来看&#xff0c; 新兴数据安全技术呈逐年递增趋势&#xff0c;其中安全多方计算、同态加密、差分隐私等隐私增…

增强型Web安全网关在银行的应用

销售&#xff0c;绝不是降低身份去取悦客户&#xff0c;而是像朋友一样给予合理的建议。你刚好需要&#xff0c;我刚好专业&#xff01;仅此而已&#xff01; 乔.吉拉德 健康的安全体系&#xff0c;还可以更完善 浙江某商业银行股份有限公司是一家成立多年的商业银行&#xf…

linux 系统初始化基本yum命令

安装可能用到的系统工具 yum -y install vim telnet wget net-tools lrzsz unzip zip 安装常用工具和开发包 yum install -y which openssh-clients openssh-server less iproute bzip2 cmake gcc gcc-c gdb git libtool make man net-tools sysstat sudo psmisc nc net-t…

vue中transition动画的使用

1.vue文件 说明&#xff1a;加name属性 <transition name"sort"><div class"sort" v-show"show"><div class"all-sort-list2" click"goSearch"><div class"item bo" v-for"(item1, in…

windows系统的IP、路由、网关、内外网同时访问路由以及修改系统文件hosts的配置

当我们刚刚入职一家公司的时候、一般公司会给我下发一个ip地址和mac地址、还有访问一些公司的平台需要修改hosts之后的路由配置、以及第一次配置内网、如何内外网同时上网。 目录 一、ip的配置 1.1、IP的配置 1.2、mac地址的配置 1.3、内外网路由的配置&#xff08;w11系统需…

掌握Python的X篇_21_局部变量与全局变量

文章目录 1. python中的局部变量2. python中的全局变量3. 显式声明全局变量 1. python中的局部变量 函数内部定义的变量&#xff0c;是局部变量。局部变量只在当前函数中有效。 各个函数之间的局部变量是互相独立&#xff0c;互不影响的。 首先看一段代码&#xff1a; def f…

java基础复习(第五日)

java基础复习(五) 1.如何在Map中遍历删除指定的 key? 如何在List 中遍历删除指定的元素? 两个方法都使用iterator解决 过程&#xff1a; 获取 map/list的iterator whlie&#xff08;iterator.hasNext&#xff09;{ //获取下一个元素 entry iterator.next(); if(entr…

小程序学习(五):WXSS模板语法

1.什么是WXSS WXSS是一套样式语言,用于美化WXML的组件样式,类似于网页开发中的CSS 2.WXSS和CSS的关系 WXSS模板样式-rpx 3.什么是rpx尺寸单位 4.rpx的实现原理 5.rpx与px之间的单位换算* WXSS模板样式-样式导入 6.什么是样式导入 使用WXSS提供的import语法,可以导入外联的样式…

前端js--剪刀石头布

效果图 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><linkrel"stylesheet"href"ht…

微服务——操作索引库+文档操作+RestClient操作索引库和文档(java程序)

索引库操作 mapping属性 mapping是对文档的约束&#xff0c;常见约束属性包括: 创建索引库 #创建索引库 PUT /heima {"mappings": {"properties": {"info":{"type": "text","analyzer": "ik_smart"},…

带头循环双向链表详解

目录 一、什么是带头循环双向链表&#xff1f; 1.特点&#xff1a; 2.优点&#xff1a; 二、实现接口 1.前置准备 1.1需要的三个文件 1.2结构体的创建和头文件的引用 2.接口实现 2.1函数创建新节点 2.2打印链表内容 2.3尾插新节点 2.4头插新节点 2.5头删节点 2.6尾删…

软件测试新人入职新公司第一次分享

新公司每周都有分享会&#xff0c;本周轮到我&#xff0c;工作很多年&#xff0c;仍然处于社会主义中级阶段&#xff0c;上升高阶有待提升&#xff0c;如果想在测试的道路上继续走下去&#xff0c;还需要多多深入了解&#xff0c;多多加油将我分享的内容&#xff0c;想在这里标…

Vue实现 水果购物车业务(内包含技术要点、代码详细解释)

水果购物车业务 需求说明 渲染功能删除功能修改功能全选反选功能统计 选中的 总价 和 总数量持久化到本地 业务技术点总结&#xff1a; 渲染功能&#xff1a; v-if/v-else v-for :class删除功能&#xff1a; 点击传参 filter过滤覆盖原数组修改个数&#xff1a; 点击传参 find找…

【CSS】倾斜按钮

效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"/><meta http-equiv"X-UA-Compatible" content"IEedge"/><meta name"viewport" content"widthdevice-…

Pytest简介及jenkins集成

一、pytest介绍 pytest介绍 - unittest\nose pytest&#xff1a;基于unittest之上的单元测试框架 自动发现测试模块和测试方法 断言使用assert表达式即可 可以设置测试会话级、模块级、类级、函数级的fixtures 数据准备 清理工作 unittest&#xff1a;setUp、teardown、…