hubdog 的blog

开发了3个多月的Flex项目终于交活了

总算是顺利地扔出去了,客户给了不错的评价。Flex开发总体体验还是不错的,最大的优势是做出来的东西非常漂亮,开发速度也很快,但是也遇到了一些问题。

一个比较突出的问题就是性能问题,不知道是垃圾回收器的问题,还是代码实现问题,写Flex程序一不小心非常容易造成内存泄漏,即便是SDK本身都有很严重的内存泄漏,而且Flex自带的内存泄漏工具也极其难用,非常慢。

还有一个问题就是数据量一大,画面的描画就会非常慢,比如说在画面上画10000个点线,就能感觉到非常明显的延迟。

上面这两点对于一个比较复杂的界面系统来说是比较难于接受的。幸好这次做的是一个演示程序。

这次演示用的数据要从客户的一个数据收集系统采集过来,对方的这个系统是用开源的XML数据库eXists来实现的,给我的印象非常糟糕,查询首先是慢不说,而且是非常容易Down掉,有时Down掉,甚至没法恢复,必须重新安装。给我的总体感觉就是所谓的语义网络,所谓的XML数据库没有什么前途。

关于Flex chart的一点心得

1.首先画面的数据点不要超过10000点,否则会非常慢

2.实现Chart数据飞跃提示的窗口可以自由定制,但是在窗口的创建后一定要注意添加下面的代码

                mouseChildren = false;
                mouseEnabled = false;   

否则,一旦窗口被鼠标点中后,将无法从界面上被自动删除。

 3.在画线图的时候,如果线段的某个点在Chart显示范围外的时候,这个就不会被描画,为了让这个线段能够被强制描画出来,需要重载线性轴的filterCache方法

Can not execute binary file

刚刚想将JDK换成6.0,结果从别的机器上复制过去的Java运行时一执行就报告Can not execute binary file。百思不得其解,后来用file java命令一看,才发现这台机器上原来的os是32位的,复制过来的java程序是64位的。

java.lang.UnsupportedClassVersionError

今天客户拿过来一台服务器,让我们将系统安装在这台服务器上,结果安装后一启动Web Service,就报告java.lang.UnsupportedClassVersionError: Bad version number in .class file

原因是编译Java时用的是1.6,而客户服务器默认安装的JDK是1.5的,在eclipse中修改编译设置compiler compilance为5.0重新编译后即可。

如何解决java应用PermGen OutOfMemory的错误

今天在Server上测试java 服务的时候频繁出现PermGen OutOfMemory的错误。

查了一下google,发现下面的解决办法

1.http://my.opera.com/karmazilla/blog/2007/03/13/good-riddance-permgen-outofmemoryerror

2.http://www.jroller.com/agileanswers/entry/preventing_java_s_java_lang

 

就是给JVM添加

-XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled

一个外包接活的网站

使用asdoc创建Flex文档

在Eclipse中创建一个外部工具

设定参数为

-source-path .
-external-library-path
  ${workspace_loc:/<your project name>/flex_libs/xxx.swc}
-doc-sources dir1 dir2
-main-title "XXX"
-window-title "XXX"

 

注意,如果工程中使用了外部的swc的话,一定要使用-external-library-path 命令添加对应的swc文件,否则asdoc总是会报告无法编译的错误。

另外asdoc有一个问题,无法编译嵌入了图像的语法,据说会在下一版本修正这个问题。目前我是将使用了嵌入式图像的代码注释掉才行

asdoc默认好像只能给Public的方法生成文档?

Flex内存泄漏

1.今天发现如果一个Timer已经Start后,不会被垃圾回收

同步内容