ulyssesric wrote:
一個可以在作業平台上直接原生執行,一個要透過一個低階虛擬機器執行,
等於是一台是 PC 直接灌 Windows,另一台 Mac 執行 VMware 上面灌 Windows,
這在你的邏輯裡面算是「同一支」程式嗎?
閣下指鹿為馬顛倒黑白的功力,再次另小民我等大開眼界。
你嘛幫幫忙,LLVM和VM差這麼多(不是都有VM的就差不多),到底是誰在指鹿為馬? 以系統架構來說DirectX和OpenGL和VM更相似,都在上層。LLVM在哪裡你知道嗎? 還原生勒。
gate2 wrote:
你嘛幫幫忙,LLVM...(恕刪)
ulyssesric wrote:
你也幫幫忙,LLVM 不是只有 GCC-backended 唯一一種方法好不好?
你今天講的 Cross-platform 那已經是牽涉到在兩個不同平台上、使用不同作業系統、不同軟體框架來撰寫的 User mode 高階應用程式,不只是不同 CPU 的機器碼跨平台。我唯一能想到 LLVM 和這種高階應用程式「Cross-platform」能扯得上關係的,就只有利用 LLVM 產生 intermediate,再搭配一個直譯器/JIT 來執行。如果還有其他的方法,願聞其詳。
我承認,我不清楚 Flash player 是採用何種 Cross-platform 技術來達成。假設 Adobe 很有良心,是用某種高階語言然後搭配 LLVM-GCC 而不是 JIT 好了;LLVM-GCC 和原生 GCC 程式碼的效率相比的結果,閣下有考慮過嗎?
閣下喜歡看數據,我們就來看數據:
http://www.phoronix.com/scan.php?page=article&item=apple_llvm_gcc#=4
12 項測試中,僅 OpenSSL 4096-bits 編碼運算 LLVM-GCC 版的執行效能高過 GCC 版,其他全都是 GCC 勝出,而且差距甚大。某些項目,例如 MD5,LLVM-GCC 的效能甚至比 GCC 差 40%。
換句話說,不管它們用哪種方法,Frontend 還是 VM,對使用者來說有差嗎?
全都是一個用非原生碼撰寫、未經過最佳化處理、疊床架屋搞出來的東西。
另外,我對於閣下所述「Flash是透過OSX的LLVM compiler來完成跨平台的使用」這件事高度存疑。
第一,目前 Flash player for Mac 版本是 10.x,於 2008 六月推出。而 OSX 的 LLVM 支援是在 2008 WWDC 首次揭露,同年底的 Xcode 3.1 才正式釋出。
第二,實際上 Flash 和 LLVM 能查詢到的唯一的關聯,除了這兩天的 CS5 新聞以外,只有一項:Alchemy C/C++ Compiler for ActionScript。這東西基本上就是利用 LLVM 編譯成 intermediate 格式,再匯入 Flash 內用 Flash 直譯器執行。換句話說,這是「讓 C/C++ 程式碼可再 Flash Player 內執行」,
第三,Adobe 目前使用 LLVM 的實例,除了上述的 ActionScript compiler 以外,只有 "Hydra" or "Pixel Bender",一個用來描述影像處理(Filter)處理程序的描述語言。
換句話說,Adobe 目前採用 LLVM 技術,當做是程式內直譯器的 intermediate 中介層,屆此來達到提昇內部直譯器執行效率的效果。有點像 fast-CGI 或 Zend-PHP 的作法。而這和閣下所謂「Flash是透過OSX的LLVM compiler來完成跨平台的使用」,顯然有一段不小的差異。
還請閣下提出「Flash是透過OSX的LLVM compiler來完成跨平台的使用」的實證,以及利用 LLVM 來達成高階應用程式跨作業系統、而不需要使用 JIT 的詳細說明。本人十分有興趣了解詳細狀況。謝謝。
gate2 wrote:
Flash player和WOW在windows和OSX的執行是兩回事。
ulyssesric wrote:
而站在一個使用者的立場,我只看到 Blizzard 為了 Mac 平台提供了一個經過最佳化的應用程式,讓兩個平台執行效能差不多;換句話說,如果經過作業系統最佳化,同一套應用程式在 Mac 平台上的執行效能與 Windows 平台上的執行效能差距不會很大,這已得到實證。而 Adobe,卻做不到這一點。
所以我特地舉 WOW 為例就是指出這一點:Adobe 沒有認真發展 Mac 版的 Flash Player。Mac 上 Flash 效能執行低落,完全是 Adobe 的問題。
todau wrote:
我看你怪錯 OS X 了
根本就該怪 Jobs!
要是每台 Mac 都是配 Xeon,RAM 放大一點,哪還有什麼跑不動!
程式跑不快幹嘛 tune,都去怪 OS 跟硬體就好啦