引用:
作者jamin
你也太迷信組合語言了吧
真的要做, 頂多是使用量大(瓶頸)的地方用組合語言改善.
大量使用組合語言, 會很難維護.
個人認為, 演算法與程式寫法才是重點.
|
沒錯 軟體架構跟如何用硬體來加速才是重點, Quartz, Core Animation 等 都透過 GPU 來最佳化... 這部份Apple其實很早就開始導入(2003), 之後 Vista Window compositing, 到 Linux 的 compiz.
Android 部份的話, 2.0 才有基本的GPU compositing / 一直到 3.0, Skia opengl backend / Animation framework 才開始追齊iOS
軟體架構 Apple 在設計iOS就有考慮到 手機裝置的限制(CPU RAM 相對不強), 所以很多元件設計都會用 Lazy initialization / Tile base rendering. 這點在Android 就比較少看到...
至於組語蠻多部份都是用在畫面處理(Software renderer), 多媒體運算的部份(DSP library), 會直接用 NEON assembly 來最佳化, 畢竟 Compiler 說笨也很笨, 另外有些C library, memory 處理的部份 也會用組語.
Kernel 幾乎很少用 組語, 除了最開始載入 跟 處理器相關會用到組語, 大部份都是用 C 做掉... 最近比較先進的部份的話 大概就是Linux kernel 在 有人在 netfilter 部份用JIT來最佳化..