我正在編寫一些Objective-C代碼,將公開發布。代碼主要由衆所周知的算法組成,這些算法將從優化中受益。我打算在C中編寫大部分代碼以減少創建對象和垃圾回收的開銷。這被認爲是不好的做法?在objective-c/cocoa框架中編寫c代碼被認爲是不好的做法嗎?
6
A
回答
11
不,不是。這實際上是非常頻繁的。
通常一個執行此當需要時間關鍵代碼運行更快(一切相等,調用C函數比一個Objective-C方法更快)。
但是,在其他一些情況下,編寫C函數也可能更好。
但請記住這一目標-C是C.一切C的超能做到的,Objective-C的可以做的,它不應該被認爲是不好做任何C能做到。可能有些情況下,不鼓勵做某些事情,但無論如何。
0
過早的優化是所有罪惡
根無論是好的做法或不完全取決於應用程序。在大多數情況下,我會首先將它寫在Objective-C中,如果速度太慢,則使用Profiler進行優化。
然而,有些情況下,你知道你會需要做的優化,例如,如果你在寫一個語言翻譯或CPU仿真的情況。在這些情況下(在情況分析顯示了一個瓶頸),它是完美的罰款寫純C.
0
沒有它不是,很多蘋果自己的框架都是大多數是C像核芯顯卡或加速。 C非常適合你需要使用很多功能,並且需要快速運行,比如數學函數。
0
有些情況下,OO模型,特別是單個調度,沒有意義。對於一般功能,可能沒有明確的首選「接收器」。支持多分派泛型函數的語言將是我的首選,因爲這樣的語言既支持大多數人認爲的OO,也支持更多以及完全支持普通的舊C風格函數。
相關問題
- 1. 這在C#中被認爲是不好的做法嗎?
- 2. 用PHP直接編寫元素風格被認爲是不好的做法嗎?
- 3. 使用GNUStep編寫Windows應用程序被認爲是不好的做法嗎?
- 4. 使用document.on()會被認爲是不好的做法嗎?
- 5. ViewModel對象持有Dispatcher被認爲是不好的做法嗎?
- 6. CORS被認爲是不好的做法嗎?
- 7. 爲什麼$在cakePHP中被認爲是不好的做法?
- 8. 域代碼請求數據是否被認爲是不好的做法?
- 9. 在C++代碼中使用C風格的註釋是不好的做法嗎?
- 10. 在派生類中拋出NotSupportedExceptions被認爲是不好的做法嗎?
- 11. 使用weak屬性在c中編寫測試代碼是不好的做法嗎?
- 12. 認爲是好的做法?
- 13. 他們說HTML代碼中的javascript代碼被認爲是不好的做法,該如何解決?
- 14. iOS - 不完美地鏡像JSON被認爲是不好的做法嗎?
- 15. 這是不好的做法嗎? C++
- 16. 在非Rails寶石中使用ActiveSupport被認爲是一種好的做法嗎?
- 17. 這會被認爲是好的C++代碼
- 18. 調用這樣的函數會被認爲是不好的做法嗎?
- 19. 編寫大量類型別名是不好的做法嗎?
- 20. 使用html'confirm'方法是否被認爲是良好的做法?
- 21. 在給定的腳本中多次重複使用迭代變量被認爲是不好的做法嗎?
- 22. 重載邏輯運算符被認爲是不好的做法?
- 23. 混凝土類注入被認爲是不好的做法
- 24. 部分嘲笑被認爲是不好的做法? (Mockito)
- 25. 是「if(somestring in {'oneoption':false,'secondoption':false})」在JavaScript中被認爲是不好的做法?
- 26. 直接調用提供者被認爲是不好的做法嗎?
- 27. 僅從DOM存儲和檢索信息被認爲是不好的做法嗎?
- 28. 使用非標準HTML屬性被認爲是不好的做法嗎?
- 29. 使用多個標題標籤被認爲是「不好的做法」嗎?
- 30. 用C++編寫的句法和語義代碼完成框架