学习JVM原理-18.Java比C/C++的性能倒底差在哪里?

摘自《深入理解Java虚拟机》周志明著

都说因为解释执行的缘故,JAVA比C/C++差; 现在主流JVM都带JIT编译器了,JAVA还比C/C++差吗? 

答案:是。缺点如下:

  1.JIT是在运行时编译,占用系统开销,挤占了程序本身的资源

    2.JVM需要检查空指针、指针越界等问题,耗时

    3.JAVA里多态用的更多,很多virtual方法,编译时不好做内联优化

    4.JAVA可以动态加载类,改变程序的继承关系,这使得很多全局优化都不好做

    5.JAVA在栈上还是堆上分配内存这个机制是固定的,C/C++就灵活多了,可以按需分配,实现更好的性能

    6.JAVA要GC,GC耗资源

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.