文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 招聘 专题 新闻
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» Java » 从Java开发者的角度看ActionScript虚拟机       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: [转载] 从Java开发者的角度看ActionScript虚拟机  ( 查看:230  回复:0 )   
 
Easy
助理工程师  点击可查看详细



帖子 365
精华 2
无忧币 1770
积分 1609
阅读权限 40
注册日期 2007-11-6
最后登录 2008-5-5 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2007-11-15 15:23   标题:从Java开发者的角度看ActionScript虚拟机
上一帖 |
ActionScript Virtual Machine 2(AVM2)在Flash Player 9运行时环境中执行ActionScript 3.0(AS3)字节码。ActionScript 3是一种面向对象编程语言,用于在Adobe Flex和AIR中构建Flash应用程序。AS3完全符合ECMAScript标准第3版。
对Java开发者来说,虚拟机的概念并不新鲜,但AVM2中还是有好些特性值得一观。Per Olesen上周发表了一篇博客文章讨论AVM2中若干值得注意的特性,包括:强类型、方法闭包、即时(JIT)编译器和垃圾收集。
类型信息
AS3支持强类型,Olesen说:
在AS3之前,代码编译后所有类型信息都会被剥除。在运行时,所有东西都只是动态类型的小原子。从AS3起,类型信息会一直保留到运行时。

……使用类型明确的变量可以提高性能表现和降低内存消耗。
方法闭包
AS3支持方法闭包,Olesen说:
AS3给我们提供了方法闭包,也就是说我们可以创建实为函数的变量,并四处传递它,而该函数仍然保持着它被创建之时的上下文环境(也就是说“this”仍然是定义函数时的那个“this”)。
在Gary Grossman和Emmy Huang的文章《Action Script 3.0概观》中,他们描述了方法闭包的主要用途:
由于方法闭包,ActionScript 3.0中的事件处理得以提供内建的事件委托,从而得到了简化。

myButton.addEventListener("click", someMethod);
即时(JIT)编译器
JIT编译这种技术将字节码转换成原生机器码来提高性能。Adobe的文档《ActionScript Virtual Machine 2 (AVM2) Overview》详细解说了它对开发者的影响:
在实践中,AVM2可经由JIT在运行时转换代码,但这并不会影响程序执行的语义,只会影响性能。
Olesen指出了开发者应当注意的一个影响:
AVM2的JIT有一个地方应该注意:构造器是不被JIT的,因此如果你的一个类里有严重影响性能的代码,把它移出构造器。
垃圾收集
Olesen从大框架上描绘了AVM2中的垃圾收集:
内存管理和垃圾收集器属于MMgc子项目。它采用了一种延迟引用计数(Deferred Reference Counting,DRC)机制,并结合一个增量的、保守的标记/清除收集器。当然,垃圾收集器实现已经为达到最佳的客户机性能作了优化,它使用小尺度(30ms)的时间片。
如果读者想查阅更多资料来源,Farata Systems有一篇文章详细比较了Java 5和ActionScript 3的语法异同。另外,在Mozilla Tamarin Project的资料中可以找到AVM2的更多信息。(译注:Tamarin是Adobe将AVM2捐献给Mozilla之后的产物,目标是构建一个高效、开源的ECMAScript 4实现。)Tamarin是Flash Player 9和AIR平台使用的AVM2实现。另外,Adobe有一个专门为Java开发者服务的Flex社区网站:http://flex.org/java/
对于Java开发者来说,ActionScript的语法以及虚拟机架构与Java都有不少相似之处,这应当会让学习过程变得轻松一些。



网络工程师到底该不该去考CCIE认证?
2007-11-15 15:231楼
[ 顶部 ]
     
论坛跳转:  

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号