这个各大语言性能测试结果挺有意思

2022-06-27 13:06:40 +08:00
 wdwwtzy
来自 https://github.com/GoodManWEN/Programming-Language-Benchmarks-Visualization

21298 次点击
所在节点    程序员
182 条回复
koebehshian
2022-06-27 22:36:45 +08:00
Lua 也太慢了
jeffh
2022-06-27 22:38:12 +08:00
想不到的是 nodejs 竟然比 ruby 和 python 快
lysS
2022-06-27 23:25:48 +08:00
这个制图真的搞,大多数定眼一看肯定是看 time, 真正排名却是乱序的、时间内存权重是 4:1
ToBeHacker
2022-06-28 00:08:47 +08:00
Python 往往只是调用层,单看这个其实没啥意义
AX5N
2022-06-28 00:14:27 +08:00
主流语言里,除了 java 以外,其余都跟我的认知差不多,我感觉 java 还要稍微快一些的。
llsquaer
2022-06-28 00:26:53 +08:00
这个图影响我写 python 了么?
silvernoo
2022-06-28 01:39:32 +08:00
难怪各大游戏引擎喜欢 C#
twl007
2022-06-28 06:09:50 +08:00
@qrobot 大部分项目开发效率远比运行效率重要的多 如果 Discord 一开始用 rust 开发 估计东西还没搞定市场都被抢走了

也就是现在地位稳固了才有精力投入到重构里面去 根本原因是因为业务大了有了性能要求才去用 rust 而不是单纯的因为 rust 表现好就去用 rust

另外 go 也可以很快 但是取决于你花多大的精力去优化了
MrKrabs
2022-06-28 06:33:20 +08:00
swift 完全兼容 c (除了宏之类的),当然可以接近 c 的效率,纯粹写代码的人的问题
zhanghua0
2022-06-28 08:26:35 +08:00
Python 的 Rank 不是倒数第一就算成功(
SJ2050cn
2022-06-28 09:17:05 +08:00
知道 julia 快,没想到这么快。
newmlp
2022-06-28 09:27:06 +08:00
@tramm 能有 20%就不错了,某些特殊场景能用到指令加速的,差个几百倍都很轻松
Guesser
2022-06-28 09:40:52 +08:00
计算机语言测试游戏可视化排行,单单一个维度就能决定一个语言性能是否太草率了?
cmdOptionKana
2022-06-28 10:00:55 +08:00
这样看 C# 在好用易用(至少有 GC )的语言中效率是最高的,可惜生态还是比不上 Java 。
yazoox
2022-06-28 10:14:14 +08:00
不是吧,lua 这么慢的么?那为啥 neovim 推荐使用 lua 写插件?是编译后的 lua ,不是解释执行的?和这个表格里面的速度不一样?
lilith01
2022-06-28 10:15:47 +08:00
kotlin 呢
netnr
2022-06-28 10:20:35 +08:00
@INCerry #51 新建控制台程序( .net6 .net7 ),添加属性 <IlcDisableReflection>true</IlcDisableReflection> 打包裁剪单文件还是 11M ,姿势不对?
silkriver
2022-06-28 10:26:31 +08:00
应该说是语言的实现,而非语言
KeyboardManS
2022-06-28 10:30:14 +08:00
为什么 Fortran 这么拉?这玩意儿不是以速度著称的吗?居然还干不过 C#
fengjianxinghun
2022-06-28 10:33:19 +08:00
@KeyboardManS 这个测试 c#作弊,nobody 的数学计算测试项就 c#用的 AVX simd ,rust 就是硬算
···

using System;
using System.Runtime.CompilerServices;
using System.Runtime.Intrinsics;
using System.Runtime.Intrinsics.X86;

using static System.Runtime.CompilerServices.MethodImplOptions;

using V256d = System.Runtime.Intrinsics.Vector256<double>;

public static unsafe class Net60_NBody_AVX_9_3b {

[MethodImpl(AggressiveOptimization | AggressiveInlining)]
private static V256d Square(V256d x)
=> Avx.Multiply(x, x);

[MethodImpl(AggressiveOptimization | AggressiveInlining)]
private static V256d Permute2x128AndBlend(V256d t0, V256d t1)
=> Avx.Add(Avx.Permute2x128(t0, t1, 0b10_0001), Avx.Blend(t0, t1, 0b1100));

[MethodImpl(AggressiveOptimization | AggressiveInlining)][SkipLocalsInit]
private static void InitDiffs(V256d* positions, V256d* rsqrts) {
V256d* r = rsqrts, p = positions;
for (int i = 1, k = 0; i < 5; ++i) {
V256d pi = p[i];
for (int j = 0; j < i; ++j, ++k) {
V256d pj = p[j];
r[k] = Avx.Subtract(pi, pj);
}
}
}
···

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/862452

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX