V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
GuardX
V2EX  ›  程序员

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

  •  
  •   GuardX · 89 天前 · 2733 次点击
    这是一个创建于 89 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言  ·  89 天前
    题目描述不太清晰,主要是计算密集型的程序,偏高性能计算的场景
    16 条回复    2024-08-27 14:51:22 +08:00
    proxytoworld
        1
    proxytoworld  
       89 天前
    看你定义的是那种高性能了,以游戏服务端来举例,基本上都是 cpp ,电商的那种又是 java 多
    XiLingHost
        2
    XiLingHost  
       89 天前
    具体是啥高性能啊,低延迟还是高吞吐量,场景是计算密集型还是 io 密集型还是啥?
    paopjian
        3
    paopjian  
       89 天前
    高性能也要和开发效率妥协,你可以搜搜看一个 The One Billion Row Challenge,超级优化 java 速度也不慢了
    zhuangzhuang1988
        4
    zhuangzhuang1988  
       89 天前
    看写代码的人。
    Jinnrry
        5
    Jinnrry  
       89 天前 via iPhone
    这两个都支持高性能,具体最终程序能不能高性能得看写程序的人
    Mithril
        6
    Mithril  
       89 天前
    主要还是看人。

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

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

    总之,一个可以用 C++写出满足高性能计算要求代码的人,用 Java 除非受到 API 或者 JVM 限制,不然性能也不会有太大差别。
    而且,JNI 算 Java 吗。。。
    xiaochun41
        7
    xiaochun41  
       88 天前
    笼统回答的话就是 C++
    rabbbit
        8
    rabbbit  
       88 天前
    搭车问个问题,c++有什么轻量级的线程池或多线程优化资料吗?
    一个任务需要调用某个函数执行 4 次耗时 5ms~6ms ,上了 pthread 线程池反而速度慢了需要耗时 8~10ms ,是因为线程本身有开销吗?
    rabbbit
        9
    rabbbit  
       88 天前
    补充一下运行环境,是 Emscripten 跑在浏览器里的
    yolee599
        10
    yolee599  
       88 天前 via Android
    楼上都在说看写代码的人,那么我假设两个写 java 和写 C++ 的人技术都是顶级的,那肯定是 C++ 性能好
    xuanbg
        11
    xuanbg  
       88 天前
    同样算法的计算 pi 的代码,实测 C 艹和 Java 几乎没有区别。所以,程序的性能区别只在人。
    me1onsoda
        12
    me1onsoda  
       88 天前
    难道不是看生态吗? Java 有可以调用显卡计算的库吗
    iPisces77
        13
    iPisces77  
       88 天前
    graalvm 这个没有 jit 性能不如 jvm 的
    xgdgsc
        14
    xgdgsc  
       88 天前 via Android
    Julia 更优秀
    dododada
        15
    dododada  
       88 天前
    以前高性能计算都是 C++,小型机时代跑一天任务不少钱呢。
    现在计算有显卡好很多了,有的任务也上超算的,程序优化不好就浪费钱
    ENNRIaaa
        16
    ENNRIaaa  
       88 天前
    感觉还是看对内存是否敏感吧,其他差异应该不大。最好是具体说一下场景,在哪方面的高性能要求。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2837 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 13:33 · PVG 21:33 · LAX 05:33 · JFK 08:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.