JavaFX 1.1版发布 脚本语言性能提升

开发 后端
Sun今日发布了其RIA平台JavaFX的1.1版本。在这一版本中,JavaFX的兼容性和脚本语言性能有所提升;此外,JavaFX的移动版本也值得我们关注。

Sun今日发布了其RIA平台JavaFX的1.1版本。Java.net科技博客的Doederlein记录了他对JavaFX 1.1的印象。

从Release Notes和一些调查中得到的对JavaFX 1.1的主要印象:

1、JavaFX Mobile的官方支持:“官方”一词,我想Sun指的是v1.0 品质。然而这仍不算是个真正的FCS,因为只有在真正的设备上运行runtime时它才是。

2、一些JavaFX Script语言性能的提升;

3、语言性能和稳定性的提升。在release notes中没有bug清单,所以你必须在JIRA中查询,JavaFX 1.1发布的codename是Franca,修补了148个补丁(增加了7个未修复的)。尽管其中的一些补丁不足为题(如说明文档、凌乱的教程)但从1.0.1到JavaFX 1.1发布的两个月的时间内,修补的bug数量仍然相当可观。

4、JavaFX桌面的全屏模式。看起来这是1.0版本的重要特性,但是被差劲的说明文档和几个bugs给拖累了。

5、javafx.fxd包,之前是一个扩展的lib,现已添加到core中(常规文档)。除了FXDLoader,你还可以克隆SceneGraph项目(使用Duplicator类)而且不需要配置库(尽管这可能比你的applet还大)。我仍在等待更加常规的克隆特性。

6、升级的文档(这仍是JavaFX的一个弱点)。我注意到升级的javadocs,但是Language Reference看起来根本就没有升级。尽管JavaFX的指导材料越来越多,但我还是倾向于好的整齐的官方指导。

提升和兼容性

唯一的语言变化看起来好像在typesystem:JavaFX Script现在支持所有Java基本类型(Java primitive types),像通常的大写名字如Long,尽管编译器会尽可能地避免将对象封装。如果硬要说的话,好的一点是JavaFX更加像Java了,高效、与大量Java代码集成整合。

这种改变的另一个方面是JavaFX的Number类型变成了float而不是double。这是一个不错的改变,对FP来说,floats在JavaFX(GUI & graphics)的领域内更加流行:尽管你在一些地方比如transforms中会用到double,但大部分的toolkits,乃至3D APIs包括Java2D,都使用float精密度来定义像屏幕坐标之类的东西。在JavaFX中,有时我们不得不使用double精度的Number来定义更大的整数(比如毫秒级时间间隔)。

但这种改变也会带来代码的破坏。拿我的JavaFX Balls代码来说,当我运行到新的runtime时,看起来工作了但是FPS计数器疯了,报告2147483647帧!!(这是0x7FFFFFFF)。我轻松地修改了这个问题:我将couple变量声明从Number改到了Long。

这个问题对于来自Sun的开发工具来说有点让人吃惊,而且你永远都会期望向后兼容。但是很高兴的是Sun总是在修复他自己操之过急做出的错误决定,尤其是许多终端的JavaFX设备还没有被开发出来。运行时间可以执行,无论是1.0.1还是1.1,都配置在插件的cache中,每个applete/JAWS应用都使用为之构建的runtime,所以现有的JavaFX applets不会被打破,只是它们不能够自动运行在新的已经升级的runtime上而已。

性能

从我开发的产品JavaFX Balls来看,JavaFX 1.1与之前的版本性能几乎一样,更多数量的balls的问题仍然存在。而且这个问题看来不会在版本1.1中迅速修复,我预计最早也会在v1.5 (Marina)中得到显著改善,因为整个Scenario runtime正在加强,而且,JavaFX将会获取到一整包的‘native’ (SceneGraph-based)组件,增加了V-sync动画制作和其他重要的提升。

我没有做更多的测试,JavaFX Balls被局限在JavaFX-centric的基准点,原因之一是这甚至不会抓取Effects框架。而且现在JDK 6u14-ea-b01具有6u12+特性,被JavaFX 1.1和G1 collector获取。早在JDK 7 builds中我就测试过G1,很慢很崩溃,所以我并不看好6u14-ea-b01版本会***。

JavaFX Mobile

移动程序的开发的确需要很大的提升。我已经将JavaFX Balls装到JavaFX Mobile中,结果很恐怖而且在beta仿真器中极不稳定。另外的问题是:我必须改变VK_STAR to VK_ASTERISK;尽管代码仍旧被编译,但之前的代码不再与仿真器的‘*’按钮所匹配。

Sun的官网公布了JavaFX Mobile的一些支持伙伴,在手持设备方面,仅有LG和SonyEricsson,我希望有更多的这方面的合作伙伴。我的下一个手机将会安装******的Java,包括JavaFX Mobile。

不好的一点是mobile runtime目前并不是在所有现有的设备上都能够安装后就可用,也许不久后这个问题就可以解决。Danny说“你将在JavaOne 2009上看到更多JavaFX Mobile可以运行的手持设备,年底的时候还会有更多的手机。”

【编辑推荐】

  1. Sun推出面向手机平台的JavaFX软件
  2. JavaFX能否实现Sun的桌面端梦想
  3. Sun正式推出JavaFX 1.0 RIA三足鼎立局面确立
责任编辑:佚名 来源: CSDN
相关推荐

2013-05-15 09:27:58

2012-11-23 13:09:38

PHP性能

2013-05-22 09:38:03

GoGo语言Go性能

2010-04-26 09:06:03

JavaFX 1.3

2015-11-16 11:31:35

Kubernetes网络性能新版本特性

2018-11-22 15:07:17

代码github程序

2011-08-22 18:00:53

Lua语言

2009-06-10 08:41:15

Linux脚本语言

2010-02-24 14:04:32

Python脚本语言

2013-07-31 16:56:08

系统级编程语言语言性能语言

2020-11-28 18:17:04

PHPPHP 8.0版本发布

2012-06-02 01:41:00

GroovyJVMJava

2010-02-26 09:33:51

Python脚本

2012-07-16 11:23:18

LinuxWindows脚本语言

2011-08-25 10:40:21

Lua游戏

2012-04-27 10:17:50

JavaJavaFX

2011-08-16 10:03:45

Groovy编程语言Web

2011-08-22 16:59:28

Lua

2011-08-25 11:02:04

2023-09-06 12:01:50

HTTP协议信息
点赞
收藏

51CTO技术栈公众号