永发信息网

Java为什么比C++慢?以及如何提高Java效率

答案:3  悬赏:40  手机版
解决时间 2021-11-18 02:16
Java为什么比C++慢?以及如何提高Java效率
最佳答案
任何事物的发展都有自下而上,自低级向高级发展的一个过程,计算机语言也一样。
自计算机被发明以来,计算机语言经历了 机器语言— 汇编语言—basic—C—c++、JAVA等的一个过程。(机器语言先不深究)
而在发展当中也遵循着从简单到复杂的一个规律,汇编语言是机器能直接运行的语言,自然在运行效率方面,当以汇编最高,其次是c和c++,最后是JAVA等;
C++和JAVA则偏向于面向对象,同样功能的代码,JAVA在编译过程当中会调用大量的库来实现,同时也会包含许多冗余代码(没有用到的代码),因此生成的可执行文件会相应的较大,在执行的过程中也会将大量时间用在层层调用上,因此效率大大降低;

关于如何提高Java效率,您可以从处理器性能方面考虑。
如今在嵌入式处理器方面,arm cortex-A8以及A9等处理器都在硬件方面增加了对JAVA的支持,可以大幅提高JAVA的运行效率,而至于采用x86架构的PC机处理器,也只能牺牲主频了。
全部回答
语言本身没有快慢,Java解释器做成硬件形式运行Java代码也未必比写残了的C++代码效率低
java为啥慢? 1、java的分配内存java只把内嵌类型分配到堆栈上面,所有Object类型都分配到堆上面。c++可以把局部变量都分配到堆栈上面。显然,根据已有测试结果,访问堆栈的速度要远高于堆的速度。 启示1:c++不要返回structure,可以用引用先传入返回对象;启示2:java对象不要随便抛弃,尽量延长其生命周期;但并不是说要维持一个对象pool;2、java没有模板没有模板的缺点就在于需要进行类型转换。类型转换是一个很耗时的操作。 如何减少类型转换? 3、 4、c++的内存占用如何?tr1自带的hashmap(int,int),一个占用16字节,是实际数据的2倍;stl自带的map(int,int),一个占用32字节,是实际数据的4倍;自己写的话,常见的是1.2倍左右的空间占用。 5、为什么java版本的底层结构效率不佳?a)java没有数组转对象的功能b)java对象内存位置是自动分配,无法控制 java基本结构的内存占用情况 a)每个object占用8字节b)对象8字节对齐c)array本身占用12字节java底层优化的建议written by goodzhu 1、rule No1:不要优化代码!注:必须编写足够可读的代码; 2、rule No2:选定优化目标注:一般只有20%左右的代码是瓶颈所在 3、通用优化技术 A、操作符简约注:如把"/=2^n"简化为">>=n"; B、公共表达式提取注:double x=d*a*b;double y=e*a*b;可以修改为:c=a*b;x=d*c;y=e*c; // 后2句在cpu层次可以并行计算 C、预先计算不变的值如:for(int i=0;i
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
元朝怎么灭亡的
阴唇一面大一面小怎么回事
暴走大事件小苹果歌词(砸你电脑)
爱奇艺会员7天多少钱?1个月多少钱?
3减14分之5除以28之25减3分之2等于多少
到底要选择一个喜欢自己的女生还是选择一个自
雅典属于大河流域吗?
瞎扯是什么意思
头一吹到风的话,就会犯困,是为什么
女友以死相逼不分手,怎么办…
桓台县邮政局(马桥支局)地址有知道的么?有点
一个小产权房,原房主A和B第一次买卖合同公证
巧束凝胶往出排东西吗
读了鹅的生日感受是什么
请问姜包除了《庄生晓梦-七年止痒》还有其它
推荐资讯
fmea的频率是失效模式的频率还是失效原因的频
雅迪电摩豪远G2,天能60V20A500W,买3380元,就
写一篇300字的周记,写一整天的事
分期买车本来打算付款3成,后面4S店要求我付2
中国炮兵为什么总能打这么准
关于西门子pcs7(v7.1)建立scl的问题!!!
舆论的影响力对一个人的影响?
违反会计职业道德的行为,一定违反了会计法律
寒门学子还能有多少前途
河南平顶山田园饭店的木桶养生豆腐汤怎么做
小鱼是怎么来的?
求有关于鸿钧老祖的电视剧
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?