友善提问:高性能场景下 Java 和 cpp 哪个更优秀 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
GuardX
V2EX    程序员

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

  •  
  •   GuardX 2024-08-26 18:29:07 +08:00 3581 次点击
    这是一个创建于 487 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言    2024-08-26 19:11:22 +08:00
    题目描述不太清晰,主要是计算密集型的程序,偏高性能计算的场景
    16 条回复    2024-08-27 14:51:22 +08:00
    proxytoworld
        1
    proxytoworld  
       2024-08-26 18:33:39 +08:00
    看你定义的是那种高性能了,以游戏服务端来举例,基本上都是 cpp ,电商的那种又是 java 多
    KagurazakaNyaa
        2
    KagurazakaNyaa  
       2024-08-26 18:36:00 +08:00
    具体是啥高性能啊,低延迟还是高吞吐量,场景是计算密集型还是 io 密集型还是啥?
    paopjian
        3
    paopjian  
       2024-08-26 18:39:08 +08:00
    高性能也要和开发效率妥协,你可以搜搜看一个 The One Billion Row Challenge,超级优化 java 速度也不慢了
    zhuangzhuang1988
        4
    zhuangzhuang1988  
       2024-08-26 19:33:25 +08:00
    看写代码的人。
    Jinnrry
        5
    Jinnrry  
       2024-08-26 19:55:55 +08:00 via iPhone
    这两个都支持高性能,具体最终程序能不能高性能得看写程序的人
    Mithril
        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 吗。。。
    xiaochun41
        7
    xiaochun41  
       2024-08-26 22:20:35 +08:00
    笼统回答的话就是 C++
    rabbbit
        8
    rabbbit  
       2024-08-26 22:38:21 +08:00
    搭车问个问题,c++有什么轻量级的线程池或多线程优化资料吗?
    一个任务需要调用某个函数执行 4 次耗时 5ms~6ms ,上了 pthread 线程池反而速度慢了需要耗时 8~10ms ,是因为线程本身有开销吗?
    rabbbit
        9
    rabbbit  
       2024-08-26 22:40:37 +08:00
    补充一下运行环境,是 Emscripten 跑在浏览器里的
    yolee599
        10
    yolee599  
       2024-08-27 08:58:46 +08:00 via Android
    楼上都在说看写代码的人,那么我假设两个写 java 和写 C++ 的人技术都是顶级的,那肯定是 C++ 性能好
    xuanbg
        11
    xuanbg  
       2024-08-27 09:08:00 +08:00
    同样算法的计算 pi 的代码,实测 C 艹和 Java 几乎没有区别。所以,程序的性能区别只在人。
    me1onsoda
        12
    me1onsoda  
       2024-08-27 09:40:58 +08:00
    难道不是看生态吗? Java 有可以调用显卡计算的库吗
    iPisces77
        13
    iPisces77  
       2024-08-27 11:04:16 +08:00
    graalvm 这个没有 jit 性能不如 jvm 的
    xgdgsc
        14
    xgdgsc  
       2024-08-27 11:37:50 +08:00 via Android
    Julia 更优秀
    dododada
        15
    dododada  
       2024-08-27 13:15:08 +08:00
    以前高性能计算都是 C++,小型机时代跑一天任务不少钱呢。
    现在计算有显卡好很多了,有的任务也上超算的,程序优化不好就浪费钱
    ENNRIaaa
        16
    ENNRIaaa  
       2024-08-27 14:51:22 +08:00
    感觉还是看对内存是否敏感吧,其他差异应该不大。最好是具体说一下场景,在哪方面的高性能要求。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1259 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 17:21 PVG 01:21 LAX 09:21 JFK 12:21
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86