友善讨论下,目前 jdk-graalvm 和 cpp 有可比性吗 小白提问,大佬轻喷
![]() |
1
proxytoworld 2024-08-26 18:33:39 +08:00
看你定义的是那种高性能了,以游戏服务端来举例,基本上都是 cpp ,电商的那种又是 java 多
|
![]() |
2
XiLingHost 2024-08-26 18:36:00 +08:00
具体是啥高性能啊,低延迟还是高吞吐量,场景是计算密集型还是 io 密集型还是啥?
|
3
paopjian 2024-08-26 18:39:08 +08:00
高性能也要和开发效率妥协,你可以搜搜看一个 The One Billion Row Challenge,超级优化 java 速度也不慢了
|
![]() |
4
zhuangzhuang1988 2024-08-26 19:33:25 +08:00
看写代码的人。
|
5
Jinnrry 2024-08-26 19:55:55 +08:00 via iPhone
这两个都支持高性能,具体最终程序能不能高性能得看写程序的人
|
6
Mithril 2024-08-26 19:57:10 +08:00
主要还是看人。
你有足够的基础知识,不管 Java 还是 C++都可以最大化利用其特性,那其实区别并不大。C++你可以很方便的手写各种优化代码,从 SIMD Intrinsics 到驱动甚至网络栈都可以改。 Java 虽然 17 也引入了 Vector ,不过你要是有能力做各种底层优化的话,还是 C++顺手写。 但绝大部分人其实都用不到这些东西。你也没那么多必要去压榨硬件性能。毕竟硬件比你人工便宜得多。 而且单纯计算的话,如果纯靠编译器优化,这俩也不会相差很多的。 总之,一个可以用 C++写出满足高性能计算要求代码的人,用 Java 除非受到 API 或者 JVM 限制,不然性能也不会有太大差别。 而且,JNI 算 Java 吗。。。 |
7
xiaochun41 2024-08-26 22:20:35 +08:00
笼统回答的话就是 C++
|
![]() |
8
rabbbit 2024-08-26 22:38:21 +08:00
搭车问个问题,c++有什么轻量级的线程池或多线程优化资料吗?
一个任务需要调用某个函数执行 4 次耗时 5ms~6ms ,上了 pthread 线程池反而速度慢了需要耗时 8~10ms ,是因为线程本身有开销吗? |
![]() |
9
rabbbit 2024-08-26 22:40:37 +08:00
补充一下运行环境,是 Emscripten 跑在浏览器里的
|
![]() |
10
yolee599 2024-08-27 08:58:46 +08:00 via Android
楼上都在说看写代码的人,那么我假设两个写 java 和写 C++ 的人技术都是顶级的,那肯定是 C++ 性能好
|
![]() |
11
xuanbg 2024-08-27 09:08:00 +08:00
同样算法的计算 pi 的代码,实测 C 艹和 Java 几乎没有区别。所以,程序的性能区别只在人。
|
![]() |
12
me1onsoda 2024-08-27 09:40:58 +08:00
难道不是看生态吗? Java 有可以调用显卡计算的库吗
|
13
iPisces77 2024-08-27 11:04:16 +08:00
graalvm 这个没有 jit 性能不如 jvm 的
|
14
xgdgsc 2024-08-27 11:37:50 +08:00 via Android
Julia 更优秀
|
![]() |
15
dododada 2024-08-27 13:15:08 +08:00
以前高性能计算都是 C++,小型机时代跑一天任务不少钱呢。
现在计算有显卡好很多了,有的任务也上超算的,程序优化不好就浪费钱 |
![]() |
16
ENNRIaaa 2024-08-27 14:51:22 +08:00
感觉还是看对内存是否敏感吧,其他差异应该不大。最好是具体说一下场景,在哪方面的高性能要求。
|