
友善讨论下,目前 jdk-graalvm 和 cpp 有可比性吗 小白提问,大佬轻喷
1 proxytoworld 2024-08-26 18:33:39 +08:00 看你定义的是那种高性能了,以游戏服务端来举例,基本上都是 cpp ,电商的那种又是 java 多 |
2 KagurazakaNyaa 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 感觉还是看对内存是否敏感吧,其他差异应该不大。最好是具体说一下场景,在哪方面的高性能要求。 |