友善提问:高性能场景下 Java 和 cpp 哪个更优秀

115 天前
GuardX  GuardX

友善讨论下,目前 jdk-graalvm 和 cpp 有可比性吗 小白提问,大佬轻喷

2777 次点击
所在节点   程序员  程序员
16 条回复
proxytoworld
proxytoworld
115 天前
看你定义的是那种高性能了,以游戏服务端来举例,基本上都是 cpp ,电商的那种又是 java 多
XiLingHost
XiLingHost
115 天前
具体是啥高性能啊,低延迟还是高吞吐量,场景是计算密集型还是 io 密集型还是啥?
paopjian
paopjian
115 天前
高性能也要和开发效率妥协,你可以搜搜看一个 The One Billion Row Challenge,超级优化 java 速度也不慢了
zhuangzhuang1988
zhuangzhuang1988
115 天前
看写代码的人。
Jinnrry
Jinnrry
115 天前
这两个都支持高性能,具体最终程序能不能高性能得看写程序的人
Mithril
Mithril
115 天前
主要还是看人。

你有足够的基础知识,不管 Java 还是 C++都可以最大化利用其特性,那其实区别并不大。C++你可以很方便的手写各种优化代码,从 SIMD Intrinsics 到驱动甚至网络栈都可以改。
Java 虽然 17 也引入了 Vector ,不过你要是有能力做各种底层优化的话,还是 C++顺手写。

但绝大部分人其实都用不到这些东西。你也没那么多必要去压榨硬件性能。毕竟硬件比你人工便宜得多。
而且单纯计算的话,如果纯靠编译器优化,这俩也不会相差很多的。

总之,一个可以用 C++写出满足高性能计算要求代码的人,用 Java 除非受到 API 或者 JVM 限制,不然性能也不会有太大差别。
而且,JNI 算 Java 吗。。。
xiaochun41
xiaochun41
115 天前
笼统回答的话就是 C++
rabbbit
rabbbit
115 天前
搭车问个问题,c++有什么轻量级的线程池或多线程优化资料吗?
一个任务需要调用某个函数执行 4 次耗时 5ms~6ms ,上了 pthread 线程池反而速度慢了需要耗时 8~10ms ,是因为线程本身有开销吗?
rabbbit
rabbbit
115 天前
补充一下运行环境,是 Emscripten 跑在浏览器里的
yolee599
yolee599
114 天前
楼上都在说看写代码的人,那么我假设两个写 java 和写 C++ 的人技术都是顶级的,那肯定是 C++ 性能好
xuanbg
xuanbg
114 天前
同样算法的计算 pi 的代码,实测 C 艹和 Java 几乎没有区别。所以,程序的性能区别只在人。
me1onsoda
me1onsoda
114 天前
难道不是看生态吗? Java 有可以调用显卡计算的库吗
iPisces77
iPisces77
114 天前
graalvm 这个没有 jit 性能不如 jvm 的
xgdgsc
xgdgsc
114 天前
Julia 更优秀
dododada
dododada
114 天前
以前高性能计算都是 C++,小型机时代跑一天任务不少钱呢。
现在计算有显卡好很多了,有的任务也上超算的,程序优化不好就浪费钱
ENNRIaaa
ENNRIaaa
114 天前
感觉还是看对内存是否敏感吧,其他差异应该不大。最好是具体说一下场景,在哪方面的高性能要求。

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

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

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

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

© 2021 V2EX