RT,近期看到有人比较C++和Java的性能
但是,他的测试代码,不是没有副作用能直接删去,就是能编译期求值,其结果并不能使人信服
于是我改进了测试代码,改为输入字符串,初始sha256设为000...0,每一轮迭代将字符串与上一轮sha256拼接再求sha256,最后输出,以克服上述问题。
输入字符串为123456789,迭代次数为987654321,指标为运行时间,越低越好。
并且测试了几个其他编程语言,其他编译器,结果如下。(什么nodejs、python之流就拉倒了,我没那个耐心)
compilerbench.zip
(11.02 KB, 下载次数: 5)
观众席:@Ph-苯 @w6vDqw @猖09. @⚡️👮 @bleake @enderman_JC @水怪诗人 @磨砺 @北极仙光 @ksqeib445 @HyperEnder @immangguo
但是,他的测试代码,不是没有副作用能直接删去,就是能编译期求值,其结果并不能使人信服
于是我改进了测试代码,改为输入字符串,初始sha256设为000...0,每一轮迭代将字符串与上一轮sha256拼接再求sha256,最后输出,以克服上述问题。
输入字符串为123456789,迭代次数为987654321,指标为运行时间,越低越好。
并且测试了几个其他编程语言,其他编译器,结果如下。(什么nodejs、python之流就拉倒了,我没那个耐心)
观众席:@Ph-苯 @w6vDqw @猖09. @⚡️👮 @bleake @enderman_JC @水怪诗人 @磨砺 @北极仙光 @ksqeib445 @HyperEnder @immangguo
所以还是爪哇好
我尝试写sha256算法,失败了。
比不上你(
比不上你(
我怀疑java又被虚拟机给大大优化了()。
rust不优化编译简直离谱……
(不同语言对字符串的优化程度不一样吧?可以试试纯整数运算?)
rust不优化编译简直离谱……
(不同语言对字符串的优化程度不一样吧?可以试试纯整数运算?)
xmdhs 发表于 2022-12-17 16:52
建议直接看 https://benchmarksgame-team.pages.debian.net/benchmarksgame/index.html
这并非我等凡人可以看懂的……
本帖最后由 洞穴夜莺 于 2022-12-17 21:13 编辑
都是字节数组(char[]/byte[])二进制处理,计时部分所有语言都没有使用标准库的字符串,也没用标准库的sha256
纯考验编译器
Ph-苯 发表于 2022-12-17 20:52
我怀疑java又被虚拟机给大大优化了()。
rust不优化编译简直离谱……
(不同语言对字符串的优化程度不一样 ...
都是字节数组(char[]/byte[])二进制处理,计时部分所有语言都没有使用标准库的字符串,也没用标准库的sha256
纯考验编译器
省流:用上优化C/C++最快
(大概是罢?)
(大概是罢?)
本帖最后由 洞穴夜莺 于 2022-12-17 23:10 编辑
C/C++/Rust是第一梯队,他们性能基本差不多,后面三个就差的有点多
所以基本上是C ≈ C++ ≈ Rust > Java > D > C#
不过,比较遗憾的是这个测试没有涉及到堆内存管理,而堆内存操作在工程代码中往往比较常见
Java/D/C#的堆内存管理有垃圾收集,而C/C++/Rust没有
多线程也没有测量到
开心的阿诺 发表于 2022-12-17 22:46
省流:用上优化C/C++最快
(大概是罢?)
C/C++/Rust是第一梯队,他们性能基本差不多,后面三个就差的有点多
所以基本上是C ≈ C++ ≈ Rust > Java > D > C#
不过,比较遗憾的是这个测试没有涉及到堆内存管理,而堆内存操作在工程代码中往往比较常见
Java/D/C#的堆内存管理有垃圾收集,而C/C++/Rust没有
多线程也没有测量到
?原来java性能这么好的吗?
编程啊 所学知识以外了
但我只会C++啊,java没试过