Techniques Optimization Category

以下结论由寂寞火山得出,我只是借花献佛 —————————————————————- 通常我们存取数据有如下几种方式:Array, Object, 自定义类, 比较特殊的还有 Point, Rectangle 等。 效率依次为(后面的数字是100万次存取运算平均所需时间): 自定义类public属性 135 Point 140 Rectangle(x等属性) 140 Array 270 Object 500 自定义动态类动态属性 550 Rectangle(left等属性) 700 自定义类getter/setter 1000 自定义类Function 1000 出乎意料,最快的是自定类的public属性,速度是Array的两倍Object的四倍getter/setter的八倍——很整的倍数关系。另外存取坐标要用Point和Rectangle,比Array快的多。Object还是少用吧,多用自定义类。 另外自定义密封类(sealed,默认)和自定义动态类(dynamic)的public属性、getter/setter速度几乎一样,而动态类动态添加的属性和Object相若。

还记得Flex/Flash的程式优化里面有指明flash自带的Math类本身就是AS实现的,所以处理速度很慢。 比如 abs(value:Number) 可以用 value < 0 ? -value : value 这样来代替。 也正是因为这样,我就想自己写个Math类MathUtil来取代Math里面的如abs(value:Number)这样的方法。 MathUtil.as public static function abs(value:Number):Number { return value < 0 ? -value : value; } 但是测试下来发现自己的MathUtil类比原来的Math类速度慢了一倍之多,难道Math.abs在fp10里优化了? 结果如果直接采用value < 0 ? -value : value来取代MathUtil.abs(value:Number)的代码,速度就比Math.abs(value:Number)快得多。 因此结论得出是function的关系,如果code代码执行重新套用了一层function,那么运行的速度结果是慢得多。 所以这也说明在对性能及其严格的情况下,写代码的时候也尽量降低代码的层次嵌套关系。

分享在 天地会 RIA天地行演讲的ppt。 Alert util View more presentations from Aedis Ju.

關于程式效能優化的文章,我前面介紹過2篇,都是值得一看: Adobe Air程式效能優化技巧 ActionScript and Flex optimization techniques and practices recommendation 近日在 InsideRIA 發表了新的一篇 10 Tips for Flex Application Performance ,是我非常敬仰的大師 Andrew Trice 所寫,程式效能優化雖然老生常談,但畢竟大師的作品是不應該落下的,因此拉出來跟大家一起品味一下。 原文就自己看了,我稍微用中文總結一下 Andrew Trice 所述的其中 6 點。 Manage your event listeners 要經常 remove 不需要的 event listeners。 定義 event listeners 的時候,注意 target 和 parent 的關系。 設置好 Event 的 bubbles & cancelable。 addEventListener 中的 [...]

今天算是完整得讀完了 SEO For Flash 這本書,雖然該書是第一本關于怎么SEO Flash方面的書籍,但內容方面并沒有讓我有很多的驚喜,還是我所知道的內容和方法,只是它作了一個比較好的總結,難免有些失望啊。下面就結合自己的經驗,重新整理一下對 Flex/Flash SEO 的方法。 替换内容(Alternative Content) html 中嵌入 swf 的 object 元素允許替換內容 (Alternative Content) 嵌套在其中,當用戶沒有安裝 Flashplayer 的時候,這些替換內容將顯示反饋信息給用戶。這些替換內容 (Alternative Content) 能被搜索引擎很好的識別,這使它成為一個對搜索引擎友好的網頁內容的好方法。無論是從用戶體驗出發,還是從 SEO 出發,務必應該在 swf 的嵌套中使用替換內容 (Alternative Content)。 XMP metadata in Flash CS4 Flash CS4 引進 XMP metadata 。 XMP (eXtensible Metadata Platform) 是一種以標準為依據的開放式技術, 可以擷取、保留和交換數位媒體與工作流程所用的 Metadata  (指說明檔案的資訊)。XMP Metadata 存放了關于文件的各種訊息,用 Flash CS4 以上版本開發的 [...]