大家说说为什么项目中不直接把java编译成二进制native code?不是就快了么

wangjiamin 2004-11-20 10:40:35
.net也一样.如果说安全问题说不过去吧,那么多delphi ,c ++ c项目呢,也好好的
...全文
498 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
joe19811130 2005-02-28
  • 打赏
  • 举报
回复
java毕竟不同于微软的vb,vb5.0就可以编译成native code,可以快20倍,但那只是windows的产品.我们的java可是要跨平台的,一次编译,到处运行.

---------------------------------------------
Java问题还很多,一次编译到处运行还只是说说而已,问题还是很多的,但比目前的.net来说好n多
onefox 2005-01-23
  • 打赏
  • 举报
回复
必须承认的两点:

1、Java 的执行效率是差的

2、J2SE 是失败的
ls_aaaa 2005-01-07
  • 打赏
  • 举报
回复
该问题已经结贴
还可以回复吗?
onlyxu 2004-12-28
  • 打赏
  • 举报
回复
原来是个倒分贴
sleepy 2004-12-27
  • 打赏
  • 举报
回复
关键一点,效率本身并不是jvm产生的,所以那样做不见得效果好
onlyxu 2004-11-22
  • 打赏
  • 举报
回复
利用编译器编译成运行于不同操作系统的本地代码,也是跨平台的一个方法?

这样,所有的语言都很容易跨平台了。
skylovers 2004-11-22
  • 打赏
  • 举报
回复
to skylovers:
编译成原生码只是跟操作系统有关系吧,就算跟cpu也有关系,客户的cpu也不是随随便便就换的,那玩意不便宜,不是螺丝钉
---------------------------------------------------------------------------------------

追求效率的最高境界应该是放弃操作系统。直接对硬件进行操作吧,这个就是为什么汇编的效率比较高...

固定大客户的CPU不随便换,那么你的J2SE游戏程序是否都要为全世界每个系统都各做优化?此后还有更多的烦心事情在等着..比如A系统对于“加”操作快,而B系统对于“乘”操作快,那我们在写代码的时候是否还要考虑?

native code --->OS--->Hardware
实现业务逻辑--->屏蔽底层硬件操作,提供上层逻辑接口--->硬件操作..

byte code ---> Jvm ---> OS ---> Hardware
实现业务逻辑--->屏蔽操作系统的差异,提供统一的编码接口--->屏蔽底层硬件操作,提供上层逻辑接口--->硬件操作..

当然,我这么说是有些偏激了。还是那句话:有时候效率不是最关键的。无论是操作系统还是JVM都是一个平台,来让我们安心做自己该做的事情。不然我们就又会回到为了提高效率而去追求熟悉各个操作系统的路子上去了...而有了JVM,那仅仅是SUN的工程师去考虑的事情....
wangjiamin 2004-11-22
  • 打赏
  • 举报
回复
to all:
有没有人在工程中实际编译果native code的?这样子可以给大家个参照,至少是决绝效率问题的一个方案
wtobias 2004-11-22
  • 打赏
  • 举报
回复
hehe
beakham 2004-11-21
  • 打赏
  • 举报
回复
JAVA毕竟要考虑到平台无关性~~~
jFresH_MaN 2004-11-21
  • 打赏
  • 举报
回复
呵呵,java要是不编译成class文件让jvm执行,那它怎么跨平台
那java还有什么优势
catblue 2004-11-21
  • 打赏
  • 举报
回复
听大家说说,我也不懂
onefox 2004-11-21
  • 打赏
  • 举报
回复
他的意思是说,预先根据几个平台编译成 2进制 的版本备用,发布。
Joelay 2004-11-21
  • 打赏
  • 举报
回复
我们做的程序的服务端,就是在windows下开发,在solaris上运行的。调试的时候自己起个server,没问题了把class打包上传,多方便。而且如果全部变成本地代码的话,rmi和序列化肯定会有麻烦吧。
theoffspring 2004-11-21
  • 打赏
  • 举报
回复
究竟怎么编译成原生码,真想试试,看看效率如何
theoffspring 2004-11-21
  • 打赏
  • 举报
回复
to skylovers:
编译成原生码只是跟操作系统有关系吧,就算跟cpu也有关系,客户的cpu也不是随随便便就换的,那玩意不便宜,不是螺丝钉
febchen 2004-11-21
  • 打赏
  • 举报
回复
跨平台的目标是建立在多种操作系统并存的基础上的,在目前单一window操作系统的情况下(特别是中国),确实不如本地编译。
如果哪一天你机器上是windows和linux并存并都支持java的话,理论上只要一个java的word软件就可以了。

目前orcale和db2的管理器都是用java写的,这些数据库的运行平台一般是unix,而管理可以在unix上,也可在window上远程管理,此时只要开发一套管理程序就可以了。当然,从实际情况看,这些管理程序在window上运行实在是累。

java本来就有2个方展方向,网络应用(J2EE)和独立应用程序,显然目前前者还是强项。
javafaq2004 2004-11-21
  • 打赏
  • 举报
回复
楼上的,总不至于发布的时候带上编译器吧?
theoffspring 2004-11-21
  • 打赏
  • 举报
回复
怎么编译成原生码,编码成不同的平台的原生码不照样跨平台吗,反正只编写了一次,何必在乎编译几次。
wangjiamin 2004-11-21
  • 打赏
  • 举报
回复
to all:我的观点:
1,java的跨平台是他的优点,但实际上大家有几个项目是在多个平台上调试运行的?多说是一个平台吧?一般是支持不同的版本而已。特别是作项目的的,平台固定的更死了,跨平台并不会真正给用户带来价值(提高工作效率),程序快了则可以。。。
2, 我知道.net中几个核心的库本来就是编译成本地代码的,一般资料也是说这样作为了效率。
3, 我接触的客户,如果真能提高效率,他们是不介意怎么作的?
如果这样,如果native code能大幅度提高效率,为什么不??

又一个问题,如果nativecode只是提高 2%一下的,是不是很有意义的,如果有30%呢。谁知道测试结果
加载更多回复(11)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧