Flash的逆襲-CS5絕地大反攻?apple出大絕~os 4.0光劍一刀斬!

gate2 wrote:
一支上層的AP,如果...(恕刪)


你這些話應該是 Flash programmer 對 Adobe 說的

一樣的 ActionScript code 居然在不同平台的效能差太多, Adobe 還憑什麼吸引人用 Flash 開發??
怪東怪西也解決不了開發者的問題啊

事實上,我根本不認為 Adobe 會跟你們的想法一樣,因為這是在背棄自己的社群

看看同樣是提供跨平台 solution 的 Appcelerator 今天的聲明
http://www.appcelerant.com/iphone-os-4-0-announcement-and-our-commitment-to-you.html

節錄這句出來
We know that you put a lot of trust in Appcelerator and effort into your applications. You have our commitment that we will do everything possible to ensure that Titanium remains the outstanding platform for cross-platform application development for years to come.

人家給 developer 的是什麼樣的 commitment,我相信 Adobe 一定也會是一樣
gate2 wrote:
一支上層的AP,如果是本身設計的瑕疵,那它的效能在各平台會非常一致的差勁。而Flash的問題在於它在windows下的效能比OSX好,既然如此這是flash自己問題的可能性就很低。
上層AP如果tune一下就可以趕上底層硬體,那誰還要買新的VGA卡,raid控制卡這種"硬體",反正這些事CPU都可以做,AP開發者自己tune一下就可以了。
儘管很多人宣稱software決定勝負的時代來臨了,但真正內行的人都知道。還要有強大的底層才能實現並支撐上層AP開發者的創意。微軟贏Apple的OSX最多的地方就在這裡。Google也知道這點,早把發展方向往底層走,現在已經有個自己的行動裝置用的OS。Apple最有市場競爭力的產品iPhoneOS,也將擁有自己的底層硬體A4。如果底層的硬體功能都能100%實現,上層AP開發者自然可以盡情開發自己的理想。如果又是像iMac一樣,一個2008年的OpenGL 3.0搞到現在driver還沒100%實現,那誰願意在這個平台上開發自己的軟體?


我是有點質疑你的說法. 你把所有的過錯都推給 OpenGL 的硬體 Driver層.

你可知OSX的所有繪圖, 都是由 Quartz 負責. 當有GPU硬體時, Quartz Extreme會接手, 利用OpenGL指令, 對Quartz所負責的繪圖進行硬體加速的動作.
現今FLASH所進行的繪圖動作, 我很少看到是3D的, 一般還是2D為主. 跟 Quartz Extreme所執行的功能差不多. OSX的繪圖效能,大家都有目共賭. 所以沒有理由同樣架在OpenGL之上的 FLASH, 效能就該比較差!
ulyssesric wrote:
你講的這句話我完全同...(恕刪)


亂入一下...
我對什麼 LLVM 或是 OS 較底層的技術不是很了解....
可是...剛好這陣子在實作 browser plug-in 的東西....
以我目前的了解是...
non-ie browser 目前使用的 plug-in 應該都是使用相同的技術 -- NPAPI
應該目前主流的 browser 都有去實作這段...
所以才可以所有 non-ie 的 browser 都使用同一個 plug-in...
而...flash...就我的了解...應該也是用相同的技術實現 non-ie browser flash player 的功能...
那單就 NPAPI 的架構看來...如果中間撰寫的 code 是 os independent...
那理論上同一包 code 應該真的是可以拿到 windows, mac 甚至是 linux 上 compile 才對
除了每個 os 基本繪圖的 API 不同的話...parse flash內容的部份應該是差不多的 code
但是有一點可以確定的是...在撥放 h.264 影片這段實作...apple 一直沒有 release hardware acceleration 的 api
所以在撥放影片肯定是效能會比較差的...而 windows 跟 linux 都有相關的 solution
目前 safari 之所以透過 html5 來撥放影片效能較使用 flash 好也是因為 safari 自己有開大絕...
OhiYooo wrote:
我是有點質疑你的說法. 你把所有的過錯都推給 OpenGL 的硬體 Driver層.

你可知OSX的所有繪圖, 都是由 Quartz 負責. 當有GPU硬體時, Quartz Extreme會接手, 利用OpenGL指令, 對Quartz所負責的繪圖進行硬體加速的動作.
現今FLASH所進行的繪圖動作, 我很少看到是3D的, 一般還是2D為主. 跟 Quartz Extreme所執行的功能差不多. OSX的繪圖效能,大家都有目共賭. 所以沒有理由同樣架在OpenGL之上的 FLASH, 效能就該比較差!


我沒有斷定Flash player在OSX下效能差的原因就是OpenGL, OpenGL的實現進度落後只是我舉的其中一個例子,說明底層的重要性。但可以確定的是Flash player 10.1以後,flash player在video playback時,OSX和windows的效能差距會更大,即使網頁是html5也一樣。 OSX就是要放著現成的h.264硬體不用,堅持只實現9400M的h.264 decoder,這又是另一個底層害死上層AP的例子。
todau wrote:
你這些話應該是 Flash programmer 對 Adobe 說的

一樣的 ActionScript code 居然在不同平台的效能差太多, Adobe 還憑什麼吸引人用 Flash 開發??
怪東怪西也解決不了開發者的問題啊

事實上,我根本不認為 Adobe 會跟你們的想法一樣,因為這是在背棄自己的社群


Adobe早講了,OSX和Linux因為底層的關係,即使是windows下支援GPU版本的Flash player 10.1還是無法得到效能提升。OSX的底層也不是Adobe能動的,何來背叛自己社群之說?

todau wrote:
看看同樣是提供跨平台 solution 的 Appcelerator 今天的聲明
http://www.appcelerant.com/iphone-os-4-0-announcement-and-our-commitment-to-you.html

節錄這句出來
We know that you put a lot of trust in Appcelerator and effort into your applications. You have our commitment that we will do everything possible to ensure that Titanium remains the outstanding platform for cross-platform application development for years to come.

人家給 developer 的是什麼樣的 commitment,我相信 Adobe 一定也會是一樣


我相信Adobe也會說類似的話,但現實裡commitment根本不能當飯吃。今天如果有人要用OpenGL 3.0跨windows/OSX平台開發一套軟體,OpenGL協會一定也會說類似的話,但問題是OSX下,即使是最新的版本10.6.3,底層driver居然還沒100%實現,在這種情況下OSX版本的效能低落已是可以預期,你認為這時候OpenGL該說什麼?

gate2 wrote:
Flash是透過OSX的LLVM compiler來完成跨平台的使用,所以對adobe來說windows或是OSX都是同一支程式。同一瓶鮮奶的比喻沒什麼不對。

WOW在OSX是用OpenGL,在windows下是DirectX,跟flash透過LLVM compiler在OSX下執行根本是兩種不同的"跨平台使用",拿這兩個應用相比的人邏輯才是有問題。


Flash Player 不是所有的平台都使用 LLVM 唷..
只有 IPhone OS 上不得不才用的..

ulyssesric wrote:
他所謂的「程式碼」是指「SWF 檔」,OK?


他所謂的程式碼應是指 Flash Player 的 source code,
而非 SWF 唷..

SWF 在任何平台上都是一樣的。
1. Flash 在桌上型電腦上執行都有問題了,在iPad/iPhone上執行絕對會是個大問題。兩者效能差異那麼大,多工都等要三年了,支援Flash,是搬磚頭砸腳嗎?

2.敝人的電腦對於flash是用flashblock來擋,用到flash的機會大概只有1%,那是沒得選的時候才用。用flashblock等等軟體來擋flash的人很多很多,看看下載排名就知道了。(資訊爆炸的時代,挑選過濾資訊是很重要的事)廣告商看到這種情形當然一定改,又不是沒替代方案,誰會跟錢過不去?

3.Appstore是iPhone/iPod/iPad成功的第一要素,除非apple/Jobs腦殘才會讓Java或者flash放到iPad/iPhone上。

這麼多人看Apple不爽,說實在我也不爽:人家毛利50%,代工毛利才5%。眼有夠紅的。看到他的產品卻又忍不住要敗,請大家繼續罵、用力罵。我要忍住、忍住。
gate2 wrote:
"同一瓶牛奶的問題",誰這麼傻,有現成LLVM可以用,還要為不同平台開發同的程式?


別人寫的東西都不看就回的?LLVM-GCC 在 92% 的測試項目中效率都低於 GCC,最糟差的情況甚至會造成 40% 效率低落的現象。如果說為了不想當傻子、懶得另外開發程式、而忽視 LLVM-GCC 會造成 20% 甚至 40% 效能低落的可能性,那這是誰的問題?

而且你也還沒說明,一個與系統程式框架相關的東西,是要怎樣在不用 JIT / Runtime直譯 / VM 等東西的情況下,靠 LLVM 達到「同一包程式碼跨作業系統框架」。我們現在講的一個是 ActiveX / DirectX,一個是 WebKit / QuickTime / OpenGL / Quartz。我想不出來這是怎麼辦到的,或許閣下的聰明腦袋願意指點一個方向?

另外,我想你回太快所以打錯字了。

gate2 wrote:
OSX就是要放著現成的h.264硬體不用,堅持只實現9400M的h.264 decoder,這又是另一個底層害死上層AP的例子。


我理解你舉例是想證明說,OS X 對硬體底層驅動程式支援很爛,所以造成效能差異。但是有一個邏輯矛盾點不知是你刻意迴避還是沒有想到:Flash playback 並不只有在 video playback 的時候會顯示差異,光是處理 2D rendering 加上 ActionScript,兩者速度差異就很明顯。

如果說 Adobe 意圖將部分 Rendering 工作移到 GPU 上執行,表示這一定是 render 運算吃重的工作,例如 video decode 或是 3D 材質處理。如果說 OS X 缺乏完整底層硬體支援、在碰到一些複雜的 Flash 影片檔、包含極多的影片播放或 3D 呈現時,效率會下降,這我可以理解。但是到現在為止 Flash 在網路上主要呈現方式還是以 2D 呈現為主,多數的 Flash 影片並沒有需要調用 Video codec,也沒有用到複雜 3D 貼圖等東西。而光是這些東西,兩個平台的速度差異就已經很明顯了。

我不相信處理 2D rendering 會需要多複雜的底層支援,就算有一些特殊濾鏡需求,10.4 以後的 Core Image framework 就應該足夠。除非 Adobe 沒有採用這些比較新的系統繪圖層而是自己搞。

從另一個角度來想,如果說 Adobe 需要將 Rendering 工作移轉到 GPU 上執行,是為了讓 CPU 與 GPU 平行處理;而在缺乏 GPU 支援的情況下就連簡單的 Rendering 也會導致 CPU 負荷過重。那這是否表示,Adobe 在處理時間軸、同步、多線緒處理等動作上,功力太差了?還是說整個 Flash playback 環境已經變成一個如同 Java VM 一樣的史前巨獸?

總而言之:同一台機器、同樣缺乏完整底層硬體驅動程式支援,為何其他人能寫出執行效率不錯的程式、但 Adobe 卻辦不到?


如果把 Flash player 整個拆解開,依照功能分類大概可以分成幾個大模組:

1. SWF/ActionScript parser, composer, timeline playback control <-- 這些東西是唯一可能用你所說的 LLVM 來處理的部份。如果 Adobe 真是用 LLVM 來編譯成 Obj-C intermediate 再匯入 Xcode,後果我上面已經講了。換句話說,核心控制部分整個用 Obj-C 原生碼重寫,這一段的效率將會大福提昇。當然,另外一個可能性,是如同網路開發社群謠傳的:Windows 以外的 Flash player,核心部分還在沿用 Flash 7 的程式碼。

2. Sound playback <-- 這一塊我不清楚,平時很少接觸。Windows 上應是直接調用 DirectX,而在 Mac 上應該是要調用 QuickTime component,不然就是得要自己實作 Decoder。如果說這一段沒弄好,為了要確保聲音與播放同步,可能造成的現象是「延遲」,對於 CPU 使用率應該不會造成太大負擔,除非寫太爛。

3. Graphic rendering <-- 上面講了,這是我認為造成效能瓶頸最可能的地方。

4. Browser component interface <-- 一個是依循 ActiveX Control,一個是依循 WebKit Framework。以 10.6 的架構,Plug-in 已經不是在 Browser 本身的程式空間內執行。基本上只要 RAM 足夠、負載不大,兩個平台的差異不會太大。

換句話說,我相信如果 Adobe 願意好好弄,他們是可以把 Mac 版 Flash player 的效能提升到和 Windows 版本相同水準。不過基本上我不抱持太大期望;Adobe 現在連 64-bits 版本的 Player 都遲遲未提供,不管是 Mac 還是 Windows。


話說回來,如果說 Flash 支援效率的關鍵是底層圖形晶片硬體加速,對一個使用者來說,開個網頁都還要先衡量自己的電腦夠不夠力,這豈不荒唐?
ILoveToEatApple wrote:
好high喔!Fla...(恕刪)


剛剛做了實驗
我用的電腦是netbook
cpu atom 270 1.6G
1GB ram

用3.5G網卡上網
然後掛上jdownload 在三個網站下載資料
再開了十一個網頁,其中一個是線上直播影視
再開啟你介紹的巴哈姆特首頁,也只需三、五秒
運作一切正常,沒人電腦比這還弱吧!
蘋果教服膺三大定律 第一定律、蘋果的創造者是無上之神 第二定律、蘋果的產品永遠無懈可擊 第三定律、當
文章分享
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 13)

今日熱門文章 網友點擊推薦!