性能加倍:虚拟线程(光纤)和JDK15/16!
如果您使用UDP作为传输,并希望将性能提高一倍:请继续阅读!
如果使用TCP,性能不会有太大变化。您可能仍然对最近的jdk和虚拟线程(以前称为“fibers”)将带来什么感兴趣。
虚拟线程
虚拟线程是轻量级线程,在概念上类似于旧的绿色线程,由JVM而不是内核来管理。许多虚拟线程可以映射到同一个操作系统本机(运营商)线程(当然,一次只能映射一个),因此我们可以拥有数百万个虚拟线程。
虚拟线程是用continuations实现的,但这只是一个细节。重要的是JDK中的所有阻塞调用(停车场锁支架()等)已修改为屈服而不是阻塞。这意味着我们不会浪费宝贵的本机载波线程,而只是进入非运行状态。当块结束时,线程被简单地再次标记为可运行,调度程序在它停止的地方继续继续执行。
主要优点:
阻塞呼叫不需要更改,例如变为被动呼叫
不需要线程池:只需创建一个虚拟线程
更少的上下文切换(减少/消除阻塞调用)
我们可以有很多虚拟线程
虚拟线程在JDK中出现还需要一段时间,但JGroups已经添加了对它的支持:只需在传输中设置use_fibers=“true”。如果JVM支持虚拟线程,那么将使用它们,否则我们将返回到常规的本机线程。
UDP:网络改进
虽然虚拟线程为jgroup带来了优势,但通过尝试更新的JDK,可以获得其他性能提升。
从jdk15开始,DatagramSockets和MulticastSockets的实现已经改为委托给DatagramChannels和multicast channels。此外,还支持虚拟线程。
这提高了UDP使用DatagramChannels和multicast channels的性能。
网络代码改进和虚拟线程的结合为UDP带来了惊人的结果,如下所示。
性能
用于以太网测试(1-16个)和1-5个虚拟机的JDEAK(16个)和1个。前两个使用本机线程,后一个使用虚拟线程。
从[1]中可以看出,UDP的性能从jdk11上的44’691提高到jdk16-ea5上的81’402;这是惊人的82%的增长!启用虚拟线程可以将16-ea5和16织机+2-14之间的性能提高到88’252,这又是8%!
jdk11和16织机的性能差异是97%!
TCP的性能差别很小;我想是因为TCP代码已经在jdk11中进行了优化。
在jdk16loom+2-14上运行表明UDP的性能已经与TCP不相上下,事实上UDP甚至比TCP快3%!
如果您想自己尝试一下:转到JGroups Github repo并创建JAR(antjar)。或者稍等一下:我很快就会发布5.0.0.Final,其中包含了这些更改。
不确定是否要将更改后传到4.x分支。。。
享受吧!
[1]https://drive.google.com/file/d/1Ars1LOM7cEf6AWpPwZHeIfu kKLa9gv0/view?usp=分享
[2]http://openjdk.java.net/jeps/373

JAVA16版本.JDK16关于TCP和UDP的优化相关推荐

  1. JAVA16版本.JDK16即将发布,你准备好了吗?

    岁月无声,岁月有声.2020实鼠不易,2021牛转乾坤. 当我们开发者与大多企业还停留在JDK8的时候,JDK16即将问世,你准备好了吗? 郑重申明: 第一次冒险翻译专业领域的文献,可想而知,效果特别 ...

  2. Java刷题知识点之TCP、UDP、TCP和UDP的区别、socket、TCP编程的客户端一般步骤、TCP编程的服务器端一般步骤、UDP编程的客户端一般步骤、UDP编程的服务器端一般步骤...

    TCP和UDP是两个传输层协议,广泛应用于网络中不同主机之间传输数据.对任何程序员来说,熟悉TCP和UDP的工作方式都是至关重要的.这就是为什么TCP和UDP是一个流行的Java编程面试问题. Jav ...

  3. 【重难点】【计算机网络 02】TCP 和 UDP 的区别、TCP 的三次握手和四次挥手、HTTP 和 HTTPS、HTTP 各版本之间的区别、HTTP 如何实现长连接

    [重难点][计算机网络 02]TCP 和 UDP 的区别.TCP 的三次握手和四次挥手.HTTP 和 HTTPS.HTTP 各版本之间的区别.HTTP 如何实现长连接 文章目录 [重难点][计算机网络 ...

  4. IP、TCP、UDP报文头说明

    IP报文头(大端字节序) 版本: 通常值为4(IPv4) 首部长度: IP头长度 表明包含多少个32Bit 包括可选头(如果有) 值为IP头大小除以4 如:没有可选头IP头为20字节 则该值为5 服务 ...

  5. TCP、UDP以及HTTP的简单讲解

    先来一个讲TCP.UDP和HTTP关系的 1.TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传输层中 ...

  6. TCP、UDP、IP 协议分析

    http://blog.chinaunix.net/uid-26833883-id-3627644.html 互连网早期的时候,主机间的互连使用的是NCP协议.这种协议本身有很多缺陷,如:不能互连不同 ...

  7. 通信协议——HTTP、TCP、UDP

    TCP HTTP UDP: 都是通信协议,也就是通信时所遵守的规则,只有双方按照这个规则"说话",对方才能理解或为之服务. TCP HTTP UDP三者的关系: TCP/IP是个协 ...

  8. [python学习] 专题七.网络编程之套接字Socket、TCP和UDP通信实例

    很早以前研究过C#和C++的网络通信,参考我的文章:                  C#网络编程之Tcp实现客户端和服务器聊天                 C#网络编程之套接字编程基础知识   ...

  9. 了解TCP协议,IP协议、ICMP协议和ARP协议(TCP报文,TCP的分成管理,TCP与UDP,TCP的三次握手四次挥手原理)

    文章目录 了解TCP/IP协议 TCP报文格式 TCP/IP 的分层管理 TCP与UDP TCP的三次握手与四次挥手 为什么要三次握手? 为什么要四次挥手? IP数据包格式 ICMP协议 ICMP协议 ...

最新文章

  1. Mysql判断工作日函数_MySQL函数查找两个日期之间的工作日数
  2. Java之数组array和集合list、set、map
  3. DataSourceUtils(使用C3P0连接池的工具类)
  4. SDN学习之旅-RYU笔记(2)
  5. object.defineProperty
  6. php 处理 http 请求,PHP的http请求处理类
  7. Teams团队的成员列表API的已知问题
  8. 十三、axios框架学习
  9. linux include 编译,linux-如何使用OpenSSL include编译.c文件?
  10. 限定概率抽奖_LOL:欧皇一次抽奖得16个永久皮肤 把老马亏得坐公交啦
  11. java三元运算符_我把Java基础编程及思维导图整理的超级详细,小白都能看懂
  12. 二叉树的深度(剑指 Offer 55 - I)
  13. MFC-利用内存映射文件来读写文件
  14. hdoj 4888 Redraw Beautiful Drawings 【最大流满流+唯一性判断】
  15. 关于canvas生成图片的方法
  16. android里面通过scp上传文件
  17. Web在线打印设计器即将推出,像Excel一样在线设计模板
  18. 虚拟信用卡免费申请(工行E卡充值entropay虚拟信用卡)
  19. 北邮计算机学院国家示范,北京邮电大学获批2020年国家自然科学基金81项
  20. echarts的gallery无法访问

热门文章

  1. C语言文件操作(五)将txt格式16进制编码转化为txt格式汉字
  2. 网络协议之:一定要大写的SOCKS
  3. Lombok常用注解和功能
  4. Java中的垃圾回收
  5. 原生JS封装自己的AJAX
  6. 【注意点分析】1016 Phone Bills (25 分)
  7. 15行代码AC——Link/Cut Tree CodeForces - 614A(爆long long处理+快速幂讲解)
  8. 关于SET和UNORDER_SET
  9. excel 文档管理服务器,Excel Server Tutorial
  10. 重庆市计算机二级证丢失,重庆计算机二级证书丢了怎么办