免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: redspider
打印 上一主题 下一主题

JAVA比 C++ 高效??  关闭 [复制链接]

论坛徽章:
0
51 [报告]
发表于 2008-09-23 23:25 |只看该作者
原帖由 blizzard213 于 2008-9-23 23:15 发表


如果可以从源代码级别上看出针对不同平台优化所做的工作 那么ok 你举出一个例子来 我想学习一样


没错,把“如果”去掉就是答案了。这正是c的威力所在。
我没必要举例子了,因为这是c的设计理念之一:作为中级语言,方便平台操作!只要你能摆脱java理念的束缚,你也不需要例子









[ 本帖最后由 ytl 于 2008-9-23 23:32 编辑 ]

论坛徽章:
0
52 [报告]
发表于 2008-09-23 23:36 |只看该作者
原帖由 ytl 于 2008-9-23 23:25 发表


没错,把“如果”去掉就是答案了。这正是c的威力所在。
我没必要举例子了,因为这是c的设计理念之一:作为中级语言,方便平台操作!只要你能摆脱java理念的束缚,你也不需要例子









呃。。。 你没回答我的问题啊
你的意思是:
c可以从源代码级别上看出针对不同平台优化所做的工作
如果我没会错意 你指的是使用编译器扩展吧。。。
呃。。。
非标准的东西我就不讨论了 不喜欢
我没啥java的理念好摆脱的 我本来就不用java

恩 我明白你的意思了 谢谢。

论坛徽章:
0
53 [报告]
发表于 2008-09-23 23:51 |只看该作者
原帖由 blizzard213 于 2008-9-23 23:36 发表


呃。。。 你没回答我的问题啊
你的意思是:
c可以从源代码级别上看出针对不同平台优化所做的工作
如果我没会错意 你指的是使用编译器扩展吧。。。
呃。。。
非标准的东西我就不讨论了 不喜欢
我没啥j ...


不是编译器扩展。指针,内嵌asm,条件编译,方便的系统调用。。。。。这些都是为平台控制而提供的机制,当然所有这些机制都是jvm所绝对忌讳的

论坛徽章:
0
54 [报告]
发表于 2008-09-24 01:26 |只看该作者
原帖由 blizzard213 于 2008-9-23 22:41 发表


因为JIT和HotSpot编译器能针对CPU指令集进行人优化、能在运行时根据使用频率对method进行内联和优化。而C++的静态编译器永远也做不到这些  

对! 这是我没想到的一个因素,谢谢!
此贴的目的达到了

评分

参与人数 1可用积分 -10 收起 理由
net_robber -10 恶意灌水

查看全部评分

论坛徽章:
0
55 [报告]
发表于 2008-09-24 03:13 |只看该作者
有一种优化叫做运行时优化,这是程序员很难做的,虚拟机可以收集一些运行时的信息,比如cache的使用,分支跳转等等等等,所以虚拟机有可能通过收集到的信息动态生成逻辑上等价但是效率上更高的机器码。

论坛徽章:
0
56 [报告]
发表于 2008-09-24 08:37 |只看该作者
我觉得还是要看实现。若java运行库的实现比cpp的runtime更好,则java快于cpp是有可能的。

论坛徽章:
0
57 [报告]
发表于 2008-09-24 09:13 |只看该作者
我已经看不清到底是在说两种语言分别的原理,还是就两种语言各自的某一具体实现在讨论……

论坛徽章:
0
58 [报告]
发表于 2008-09-24 09:14 |只看该作者
Java不是运行在虚拟机上的

论坛徽章:
0
59 [报告]
发表于 2008-09-24 09:18 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
60 [报告]
发表于 2008-09-24 09:27 |只看该作者
java再nb,也是需要将他的指令通过jvm转化成01然后通过操作系统运行,c的代码运行的时候直接就是01了,实在想象不出除了写代码的人水平或者设计选择的问题以外,什么原因能让.class比可执行文件跑得更快。
当然,如果你一定要归咎于那些写编译器的人比写jvm的人弱,那就没有办法了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP