范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

最快的jvm版本,你选择对了吗?

  本文将使用开源的  Chronicle Queue(OpenHFT/Chronicle-Queue: Micro second messaging that stores everything to disk)  在两个线程之间传递 256 字节的消息,其中所有消息都存储在共享内存中 。
  Chronicle Queue 是一个超低延迟、高吞吐、持久化的消息和事件驱动的内存数据库, 延迟只有16纳秒以及支持每秒钟 500-2000 万消息/记录。由于 Chronicle Queue 在本机内存上运行,所以它不需要进行垃圾回收,具有非常高的性能。
  在benchmarks测试中,单个生产者线程将消息写入具有纳秒时间戳的队列。另一个消费者线程从队列中读取消息并在直方图中记录时间增量。生产者保持每秒 100,000 条消息的持续输出速率,每条消息中的有效负载为 256 字节。数据的测试时间范围是 100 秒内,因此大多数抖动将反映在测量中,并确保较高百分位数的合理置信区间。
  目标机器是 AMD Ryzen 9 5950X 16 核处理器,在 Linux 5.11.0-49-generic #55-Ubuntu SMP 下以 3.4 GHz 运行。CPU 核数是 2-8 ,这意味着操作系统不会自动调度任何用户进程,并且会避免这些核上的大多数中断。
  生产者 - 内部循环的部分代码// Pin the producer thread to CPU 2 Affinity.setAffinity(2);  try (ChronicleQueue cq = SingleChronicleQueueBuilder.binary(tmp)         .blockSize(blocksize)         .rollCycle(ROLL_CYCLE)         .build()) {      ExcerptAppender appender = cq.acquireAppender();      final long nano_delay = 1_000_000_000L/MSGS_PER_SECOND;     for (int i = -WARMUP; i < COUNT; ++i) {         long startTime = System.nanoTime();          try (DocumentContext dc = appender.writingDocument()) {             Bytes bytes = dc.wire().bytes();             data.writeLong(0, startTime);             bytes.write(data,0, MSGSIZE);         }         long delay = nano_delay - (System.nanoTime() - startTime);          spin_wait(delay);     } }
  消费者 - 内部循环的部分代码// Pin the consumer thread to CPU 4 Affinity.setAffinity(4);  try (ChronicleQueue cq = SingleChronicleQueueBuilder.binary(tmp)         .blockSize(blocksize)         .rollCycle(ROLL_CYCLE)         .build()) {      ExcerptTailer tailer = cq.createTailer();      int idx = -APPENDERS * WARMUP;      while(idx < APPENDERS * COUNT) {         try (DocumentContext dc = tailer.readingDocument()) {             if(!dc.isPresent())                 continue;              Bytes bytes = dc.wire().bytes();             data.clear();             bytes.read(data, (int)MSGSIZE);             long startTime = data.readLong(0);              if(idx >= 0)                 deltas[idx] = System.nanoTime() - startTime;             ++idx;         }     } }
  从上面的代码中可以看出,消费者线程会读取每个纳秒时间戳,并把相关的耗时延迟记录在数组中。这些时间戳也会放入直方图中,当benchmark测试完成时会打印该直方图。只有在 JVM 正确预热(warmed up)并且 C2 编译器具有 JIT: ed 热执行路径后,才会开始测量(Measurements)。
  JVM 版本
  Chronicle Queue 正式支持所有最近的 LTS 版本:Java 8、Java 11 和 Java 17,因此这些将用于benchmark测试。还会使用 GraalVM 社区版和企业版。下面是使用特定 JVM 版本的列表: Legend (JVM Variant)Detail
  OpenJDK 8
  1.8.0_322, vendor: Temurin
  OpenJDK 11
  11.0.14.1, vendor: Eclipse Adoptium
  OpenJDK 17
  17.0.2, vendor: Eclipse Adoptium
  Graal VM CE 17
  17.0.2, vendor: GraalVM Community
  Graal VM EE 17
  17.0.2, vendor: Oracle Corporation
  Measurements
  由于每秒产生 100,000 条消息,并且benchmarks测试运行 100 秒,因此在每个benchmarks测试期间将采样 100,000 * 100 = 1000 万条消息。使用的直方图将每个样本置于某个百分位:50%(中位数)、90%、99%、99.9% 等。下表显示了针对某些百分位接收到的消息总数 Percentile# Messages
  0% (all)
  10,000,000
  50% ("Median", used below)
  5,000,000
  99%
  100,000
  99.9%
  10,000
  99.99% (used below)
  1,000
  99.999%
  1000
  假设测量值地方差相对较小,对于高达 99.99% 的百分位数,置信区间可能是合理的。99.999% 的百分位数可能需要至少半小时左右而不是仅仅 100 秒的时间来收集数据,以生成任何具有合理置信区间的数据。   Benchmarks Results   对于每个 Java 版本,benchmarks测试运行如下: # shell 命令 mvn exec:java@QueuePerformance   需要特别注意的是,生产者和消费者线程都将被锁定,分别在隔离的 CPU 内核 2 和 4 上运行 $ top PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3216555 per.min+ 20 0 92.3g 1.5g 1.1g S 200.0 2.3 0:50.15 java   可以看出来,生产者和消费者线程在每条消息之间旋转等待,因此每个都消耗整个 CPU 内核。 LockSupport.parkNanos(1000) 如果 CPU 消耗是一个问题,则延迟和确定性可以通过在没有消息可用的情况下将线程停放一小段时间(例如)来降低功耗。   下面的数字以纳秒 (ns) 为单位给出,这对于理解是必不可少的。   许多其他延迟测量以微秒(= 1,000 ns)甚至毫秒(= 1,000,000 ns)为单位进行。1 ns 大致对应于CPU L1 高速缓存的访问时间。   以下是所有值均以 ns 为单位的benchmarks测试结果: JDK VariantMedian99.99%   OpenJDK 8   280
  3,951   OpenJDK 11   370
  4,210   OpenJDK 17   290
  4,041   GraalVM CE 17 (*)   310
  3,950   GraalVM EE 17 (*)   270
  3
  (*) 意味着Chronicle Queue 尚未正式支持。   Typical Latency (Median)   对于典型(中值)值,各种 JDK 之间没有显着差异,除了 OpenJDK 11 比其他版本慢约 30%。   其中最快的是 GraalVM EE 17,但与 OpenJDK 8/OpenJDK 17 相比差异很小。   这是一个图表,其中包含使用的各种 JDK 变体的典型 256 字节消息延迟(越低越好):   Higher Percentiles   从较高的百分位数来看,受支持的 JDK 变体之间也没有太大差异。GraalVM EE 再次稍微快一点,但这里的相对差异甚至更小。OpenJDK 11 似乎比其他变体稍差(- 5%),但在估计的误差范围内,增量是相当的。   这是另一个图表,显示了各种 JDK 变体的 99.99% 百分位数的延迟(越低越好):   Conclusions   Chronicle Queue 低延迟性能非常好。从主存访问 64 位数据大约需要 100 个周期(在当前硬件上相当于大约 30 ns)。上面的代码有一些必须执行的逻辑。此外,Chronicle Queue 从生产者那里获取数据,持久化数据(写入内存映射文件),为线程间通信和发生前发生的保证应用适当的内存防护,然后将数据提供给消费者。与 30 ns 的单个 64 位内存访问相比,所有这些通常发生在 256 字节的 600 ns 左右。   从上面的图表中可以观察到, OpenJDK 17 和 GraalVM EE 17 是应用程序的最佳选择,提供了最佳延迟数据性能。如果需要抑制异常值或确实需要尽可能低的总体延迟,可以考虑使用 GraalVM EE 17 而不是 OpenJDK 17。

飞利浦高端智能录音旗舰级96000Hz,速来先睹为快2020飞利浦专业系录音新品AI。超智能录音设备618零点启动,正式开售至原声,智记录焕新上线1分钟,倾听飞利浦与声音的故事一起感受现代拾声魅力向下的精彩,展现更多飞利浦高端智能录全端App时代要到来了?移动开发未来新潮流上周不是微软发布了Windows11吗?最让大家出乎意料的是,Windows11可以运行安卓App。而在此之前,我们都知道苹果去年推了M1芯片,运行M1芯片的Mac电脑上也早开始可未来已来一款重新定义智能会议室的核心产品即将发布创新无局限,传统终会被打破!科技的进步推动着我们社会迅速向前,AI智能将逐步代替传统的作业方式,21世纪的我们正处于这巨大的变革之中,我们的每一次努力和进步,无不对后世产生深远的影发布会炮轰高价低配线下机!卢伟冰要彻底打破信息不对称格局在此前的RedmiNote10系列发布会上,除了发布新品外,还有一点值得关注的便是卢伟冰要解决线上下线机的区别对待问题,这可以说是自Redmi要消灭山寨机后又一改变行业的挑战,这件关于延期举行部分地区税务师职业资格考试的补充公告中国注册税务师协会中国注册税务师协会公告2021第21号鉴于当前疫情防控形势及各地防疫要求,继关于延期举行部分地区税务师职业资格考试的公告(中国注册税务师协会公告2021第19号)交互式电子白板的作用可能比你想象的还要重要人类对未来的想象从未停止,而当下的改变便是未来的根基。早在远程视频普及之前,交互式电子白板便作为数字化课堂的构建组成被广泛应用于各校园之内。在教育行业应用中,传统的粉笔黑板教学本来飞利浦CVR1500实测报告行车记录仪选择指南好一段时间里,套路满满的碰瓷大戏频繁出现,车主在没有证据的前提下还真是哑巴吃黄连,有苦说不出呀,谁曾想想过开个车还能遇上这种电视剧情节一般的事情,当然,随着各大媒体平台的争相报道我如何高效地实现远程办公?01hr远程办公,一台设备解决您的所有会议需求2020受及疫情影响,远程办公猛然间被推至为引领社会复工的重要方式,成为了此时此刻的刚需。为了能够有效地对疫情进行防控,各省各市积极响60岁的刘德华,只因一个穿搭小细节,被年轻人狂赞不老硬汉不知不觉,陪伴几代人青春的刘德华先生将在9月27日迎来他的60周岁生日。尽管我不是一个追星的人,但是我对刘德华本人还是非常敬重的。因为他虽然在一众男星里才艺算不上最强的,外形在那个小米Civi开箱,能否成为线下机的扛把子?不吹不踩,拍照是亮点小米Civi自上月发布热度一直很高,通过小米官方的传播也能够看出小米对这个全新的系列格外重视。作为主攻线下市场的产品,小米Civi在网络上的评价也充斥着不同的声音,有人踩有人夸。能有赞招商加速,5亿赋能6大扶持,代理商搭上数字经济便车共同富裕成了近期的热门话题,有媒体认为,共同富裕的另一种理解便是让奋斗的人充满希望,即社会和企业都应该努力给奋斗者提供帮助,来完成自身相应的社会责任。近年来,新经济新模式层出不穷,
佳能的颜色真的比索尼好吗?我是摄影领域达人马克莱恩,很高兴和您分享这十年我对摄影的经验与感悟,希望得到您的认可。佳能的颜色真的比索尼好吗?(左索尼A7R3适马50mmf1。4Art右佳能EOS5DSR适马5双11销售8894亿后,传统电商的时代将结束,取而代之的是兴趣电商即便在今年双11天猫销售了5403亿,京东销售了3491亿,也无法阻挡传统电商时代的结束。1hr今年双11两大电商巨头总计销售了8894亿,可有多少水分多少人在赔本卖吆喝,在120对话元气森林唐彬森富翁海盗与产品经理看三种迥异的特质如何在他身上合而为一。文宋玮黎诗韵黄俊杰编辑黄俊杰连续创业者唐彬森在互联网圈摸爬滚打十年,赚过大钱,但没有获得和赚钱能力相匹配的名声。2016年,他一脚踏入饮料行业对比杭州,南京拉胯,知名互联网公司为何那么少?南京本身经济就没什么活力,一大帮国企靠着政策垄断吃饭,其实做的都是没用多少技术含量的事,至于互联网公司,南京的软件公司一种是搞华为外包的,一种就是搞政企项目其实就是做政府信息化外包想买一台带独显的电脑,但不怎么打游戏,只是想看看文档学习,医学生,有什么推荐的么,小米小新华为啥的?小新Pro2021系列,CPU为AMDR75800H,自带的核显vega8足够强大,医学生足够使了!不怎么打游戏,不挖矿,独显没有必要,荣耀Magicbook14即可胜任。我想买台苹果FaceID新专利可存储使用者不同造型,针对近视远视用户优化显示财经网科技11月15日讯,据IT之家消息,苹果公司一项发明专利被公开,专利编号为20210350769。该专利展现FaceID人脸识别技术手机显示屏校正技术等一系列新功能。Face最大隐患华为跌倒后,苹果是该有个竞争对手了撰文AI财经社麻策编辑赵艳秋iPhone13又卖爆了。一名手机线上经销商告诉AI财经社,iPhone13系列目前供不应求,而且是越高配的版本越缺货。所有人都在找货,身边不少朋友都在一直藏着掖着的AppleCar,居然被人偷偷用苹果专利做了出来汽车不过是四个轮子的iPhone,我们既然能造iPhone,为什么就不能造电动车?富士康母公司鸿海集团创始人郭台铭曾在多个场合表达这一观点。但我认为,这句话放在苹果身上可能会更加合从5499元跌至3964元,苹果A13IP68防水,经典iPhone重回低价快速发布新机是手机厂商们抢占市场份额最好用的办法,许多国产手机品牌2021年发布新机的速度都比往年更快了,例如小米公司原本一年一更新的RedmiNote系列,如今直接变成了半年一更苹果M1M1ProM1Max之间有何不同?2020年,苹果推出的M1芯片成为了一大话题,而在2021年10月,新款MacBookPro搭载了M1Pro芯片和M1Max芯片,在本文中,我将说明苹果M1M1ProM1Max之间为什么很多夫妻中,男的一般都是用国产手机,女的用苹果手机?不完全是钱的问题,说一下我的经历。若干年前有次深夜去会所接朋友,目睹一群下班的小姐在等车,坐在沙发上一排低头玩手机。清一色的最新款iphone5s另一次,和朋友接洽,有一干练的女强