当前位置:首页 > 每日看点 > 正文内容

为什么ja20性能不上.NET8还有人在用?

卡卷网1年前 (2025-01-10)每日看点246

你甚至根本不知道你自己在测什么,new一个大小为1000,000,000的数组出来然后只生成一个随机字节,unsafe用的也很迷惑,很难理解你想干什么。

我重写了:

C#

usingSystem.Diagnosti; varytes=newyte[1000000000]; varrg=newRandom(0); voiddoRandom(){ rg.Nextytes(ytes); } for(inti=0;i<10;i++){ doRandom(); } vars=Stopwatch.StartNew(); doRandom(); s.Stop(); Console.WriteLine($"Yes!{s.ElapsedMilliseconds}ms");

Ja:

importja.util.Random; importja.util.random.RandomGenerator; pulicclassMain{ privatestaticfinalyte[]ytes=newyte[1000000000]; privatestaticfinalRandomGeneratorrg=newRandom(0); pulicstaticvoiddoRandom(){ rg.nextytes(ytes); } pulicstaticvoidmain(String[]args){ for(inti=0;i<10;i++){ doRandom(); } varstart=System.crentTimeMillis(); doRandom(); varend=System.crentTimeMillis(); System.out.printf("Yes!%s%n",end-start); } }

在运行前进行了十次循环预热后,同样生成十亿长度的随机数组,.Net8Preview在我的上所用的时间为1965ms,而Ja20是801ms,所以相对而言.Net的老随机生成算法在生成速度方面不如Ja的Random,不过这也代表不了什么,因为伪随机数生成器的指标也不止一个生成性能。

从.Net6开始,未指定种子的Random会使用Xoshiro256**算法来生成随机数,而Ja也在Ja17中引入了新的RandomGeneratorAPI来指定不同的随机数生成器,可以这样得到一个基于Xoshiro256**的随机数生成器:

varrg=RandomGenerator.of("Xoshiro256PlusPlus");

双方同样使用Xoshiro256**算法再进行以上时,.Net8Preview在我机器上花了86ms,而Ja20是327ms,实现方面的性能差距确实存在,这个主要原因是.Net为Xoshiro256**的Nextytes单做了实现,而Ja20是直接用的RandomGenerator的默认实现,这个默认实现也很糙,因此造成了差距。

前段时间我在OpenJDK这边开了一个PR来优化RandomGenerator的默认实现:

OptimizeRandomGenerator::nextytesyGlo·PullRequest#14638·openjdk/jdk

用我优化后的分支再进行花了160ms,速度快了一倍多,不过想和.Net一样快那就要给Xoshiro256**算法单实现nextytes方法了,如果我观察到这个方法的性能确实非常重要的话,我也会在这方面再进一步做些工作。

按题主评论区那样单个nextInt不预热这样测的话,.Net8Preview性能大概在JDK20和GraalVMforJDK20JIT模式之间,也算符合预期,有时间的话我再看看Ja这边的实现有没有可优化的地方。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/8152.html

分享给朋友:

相关文章

短剧推广怎么做,24年还能赚钱吗?

短剧推广怎么做,24年还能赚钱吗?

首先声明:短剧授权是免费的!短剧授权是免费的!短剧授权是免费的!其次我们再聊聊,短剧推广到底赚不赚钱?多的就不说了,随便上个图片,给大家过过瘾!然后,我们进入主题:0粉丝账号,新手,应该如何申请短剧推广!一、短剧推广变现方式首先,我们先要分...

知乎创作收益高吗?

知乎创作收益高吗?

高啊,主要是大多数人不知道怎么做。(这是以前写的,请看到最后)我之前就是傻傻写问答,文章,结果一毛钱收益没有。知乎上收益高的主要有盐选,好物推荐,致知计划,付费咨询。1、盐选吧,是写故事,小说类的天堂,还有就是大咖们的地盘了,难度高。2、好...

你捡过最大的漏是什么?

你捡过最大的漏是什么?

买了套二手房,软磨硬泡便宜了1个w 结果就是一屋子狼藉 原业主说反正你们要重新装修 就不收拾了 等完了你们一起收拾掉吧 落了很多柜子 电器是啥的 今天打开卧室柜子一看…现在是去存钱的路上有朋友知道这样存钱银行会给发大米跟油吗...

你为什么讨厌抖音?

我就被抖音毁了。现在被我媳妇从抖音里拯救出来了。我为什么会这样说?我媳妇硕士在读,我文化程度相对就比较低了。大多数人看抖音其实就是为了一图一乐呵刚开始我也是这样的,我是2017年在朋友的推荐下注册了抖音,刚开始那时候对抖音不太上瘾,一周也就...

数字人民币为什么又不火了?

我完全不懂行。我一开始以为,数字人民币,是对我银行里的每一分钱,都赋予一个独一无二的数字编码。我要用一块钱买矿泉水,它就从我的存款中随机选取一百个一分钱,组合成一块钱,支付给商家。我花一百块钱吃饭,它就随机选取一万个一分钱,组合成一百块钱,...

用红米手机会很丢人吗?

前些日子遇到了一位快递小哥,京东的,签收小哥年纪不算大,目测二十多岁他的手机上全是一道道极严重的划痕,有点卡,他开热点了,热点名就是手机型号,红米9a,我父母的同款现在他那边操作了一会,然后又是我这边操作了一会小哥看着我手机刷刷的,颇有些好...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。