2012-10-30 35 views
1

我正在試驗ARM彙編語言,在此期間,我經常使用內嵌彙編塊代碼爲我的第一個iOS 6小型寵物項目編寫Objective-C代碼。在此期間,我想知道:使用ARM彙編進行Iphone開發的利弊?

  1. 在大型商業iOS項目中使用ARM組合是否合理?
  2. 我可以用它優化一些瓶頸,並超過編譯器嗎?
  3. 什麼是使用匯編語言的iOS的一些常見指導方針或最佳做法:矢量化,NEON,SIMD,媒體優化(圖像收縮等)?
+0

語言最終是ASM的抽象。 ASM在iOS開發中唯一真正有用的東西是NEON。 – CodaFi

回答

2

的iPhone只是一個小的電腦,以便使用匯編的取捨是完全相同的,與任何其他機器。

一般的答案是否定的,你不想使用匯編器。儘管如此,總是有一些例外,那就是手動調整的,非常低的代碼可能會更快。確保使用Instruments來正確識別瓶頸,並且在開始之前使用更高級別的技術調整了代碼。

在有意義的地方使用特殊的硬件功能,但請記住,您不需要使用匯編程序來獲得大多數硬件的好處。

+0

另一個例外是做有趣的項目。 Objective-C是一種非常難看的語言,程序集絕對是編程享受的一個步驟。顯然,如果它是一個付費項目Objective-C將贏得生產力。 –

+0

對於物理引擎和其他重數學(可以直接訪問ARM矢量操作的地方)這些東西可能很有用,但對於其他任何情況,編譯器始終會生成比您更好的代碼。無論如何先測量,再優化。 – ahwulf