首页 > 编程语言 >Java每日一题之Netty高性能表现在那些方面?

Java每日一题之Netty高性能表现在那些方面?

时间:2022-10-14 11:32:14浏览次数:45  
标签:Netty 序列化 Java 并发 高性能 线程 内存 一题 串行化


Java每日一题之Netty高性能表现在那些方面?

答案 :
(1) IO线程模型 :同步非阻塞,用最少的资源做更多的事情。
(2) 内存零拷贝 :尽量减少不必要的内存拷贝,实现了更高效率的传输。
(3) 内存池设计 :申请的内存可以重用,主要指直接内存。内部实现是用一颗二叉查找树管理内存分配情况。
(4) 串行化处理读写 :避免使用锁带来的性能开销。即消息的处理尽可能再同一个线程内完成,期间不进行线程切换,这样就避免了多线程竞争和同步锁。表面上看,串行化设计似乎CPU利用率不高,并发程度不够。但是,通过调整NIO线程池的线程参数,可以同时启动多个串行化的线程并行运行,这种局部无锁化的串行线程设计相比一个队里-多个工作线程模型性能更优。
(5) 高性能序列化协议 :支持protobuf等高性能序列化协议。
(6) 高效并发编程的体现 :volatile的大量、正确使用;CAS和原子类的广泛使用;线程安全容器的使用;通过读写锁提升并发性能。


标签:Netty,序列化,Java,并发,高性能,线程,内存,一题,串行化
From: https://blog.51cto.com/u_15829196/5755972

相关文章

  • 【前端】【JavaScript】通过成绩判断等级
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><labelfor="num">成绩:</label><inputtype="number&qu......
  • 【前端】【JavaScript】简单的加减乘除计算器
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><inputtype="text"id="number1"><selectid="s......
  • 如何修改eclipse下的Java代码注释模板
    window-->preferences-->搜索框进行搜索Code-->Java-->CodeStyle-->CodeTemplate-->Comments-->Types点击编辑输入一下内容/***@authortiger*@d......
  • C#利用IKVM调用JAVA方法
    第一步:添加java类第二步:构建项目 第三步:生成jar包(在构建好的文件中执行下列命令) 方式1:jarcvftest.jar-Ccom/.方式2:jarcftest.jarTripleDES.class 第四......
  • Error: could not open 'D:\Environment\java\jre1.8\lib\amd64\jvm.cfg'问题解
    环境变量均已配置成功,但输入java-version时弹出错误Error:couldnotopen'D:\Environment\java\jre1.8\lib\amd64\jvm.cfg'解决办法:按照系统变量里的这个路径找到jav......
  • java方法详解
    一、何谓方法?System.out.println(),那么它是什么呢?Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的有序集合;方法包含于类或对象中;方法在程序......
  • 力扣609(java&python)-在系统中查找重复文件(中等)
    给你一个目录信息列表 paths,包括目录路径,以及该目录中的所有文件及其内容,请你按路径返回文件系统中的所有重复文件。答案可按任意顺序返回。一组重复的文件至少包括......
  • Java注解(1):码农的小秘
    很多码农在写代码的时候不太爱写注释,结果任务一多,时间一长,需求一改,就完全不知道当初自己都干了些啥了。好在现在大多数编程语言都有注释功能,能够在代码里面做一些备注,不至......
  • java阶乘的实现(scanner使用练习)
    publicclasstest{publicstaticvoidmain(String[]args){System.out.println("请输入计算x!的x值");Scannerscanner=newScanner(System.i......
  • Java数组的定义及声明、创建
    packagecom.zhu.array;publicclassDemo03{/*【数组声明创建】1、首先必须声明数组变量,才能在程序中......