JAVA网页编程之Java 6 Hotspot的功能仓酷云
Java编译的是字节码,跟C++相反,启动不够快,效率不够高,难以精确控制内存,但是优点是编程比C++容易,代码比较安全但是容易留下性能隐患,跨平台靠字节码在各个平台复制(一处编译到处调试)Sun公司的KohsukeKawaguchi考查了HotspotJIT在JDK6u10b14debug版中发生的汇编代码,并将其纪录在博客中。该博文侧重论述了Java优化的水平。Kawaguchi将重点放在两个次要的中央。起首是轮回睁开(loopunrolling),它是如许一种手艺:复制轮回的每次迭代所挪用的指令以组成一个序列。经由过程削减轮回上钩算机必要实行的指令,节俭了实行工夫。JIT将其与预处置和过后剖析相分离,同时Kawaguchi对此的增补也申明了如许的现实:编译器已从轮回的疾速实行部分傍边移除一个冗余的数组索引反省。别的,了局汇编代码证实了特定于处置器的优化水平怎样。比方,Kawaguchi谈到了上面的代码:
privatestaticbyte[]foo(){
byte[]buf=newbyte;
for(inti=0;ibuf=0;
returnbuf;
}所发生的汇编了局利用了特定于AMD64芯片的R8-R15通用存放器汇编代码。
其次是环绕着锁(locks)而举行的优化。在Java中非竞态锁的猎取在不休地改善,而竞态锁的猎取却一向存在成绩。这个范畴的事情还在延续举行中,可是Kawaguchi的事情却申明了几个已失掉改善的中央。
这篇文章展现了该Hotspot编译器良多其他的特征,包含壮大的内联——JamesGosling注重到一篇相干的博文中说“乃至连存储分派和初始化都必要内联”。这一层级的侵犯性(aggression)是大概存在的,部分缘故原由在于JVM会在需要时做一些潜伏不平安的优化。CharlesNutter在往年初列入Lang.NET年夜会时曾对此提出了一个很好的注释。他也夸大了这项事情与JRuby的干系,和与任何面向JVM的言语的干系。
“已往JVM有多种分歧的才能往静态优化和再优化代码……也许最主要的是需要时的静态“逆优化(deoptimize)”。在处置功能成绩时,逆优化(Deoptimization)使人十分镇静,由于这意味着你能够举行更多的侵犯性优化——对全部使用不断定的将来的潜伏的不平安的优化——晓得你能够在平安的路径上回退。一旦你几回碰到不异的路径,你就能够内联全部挪用路径。除非分明必要,你能够疏忽同步回护。你还能够在发明成绩以后改动利用的优化集……实质上,在运转过程当中你能够平安的“堕落”而且从毛病中进修。这就是为何在特定的基准上Java超出了C和C++和终极在几近一切基准上它都能将超出C和C++的次要缘故原由。同时这也是我们的JRuby与微软的IronPython和DLR比拟,只必要做很少的事变就能够取得可承受的功能的一个关头缘故原由。”从实际上讲,像Java如许的注释型言语的功能很有大概终极将超出编译型言语,由于它能够在运转时基于现有硬件举行优化,同时Java中不休进步的对特定于处置器的优化的确使人十分镇静。关于面向Java平台的开辟者来讲,一个分外的优点在于跟着新版本Java编译器的公布,代码的功能会精益求精,而无需对使用的源码做任何变动。
检察英文原文:Java6HotspotPerformance
来自:http://www.infoq.com/cn/news/2008/05/hotspot_performance
C#是盗用了Java的源代码,仿照开发的,原因是Java是开源的啊,盗了也白盗,还有一点,开发C#语言的团队是就是开发Java语言的团队,是微软重金挖过去的啊 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
页:
[1]