字符串比較可能是昂貴的。有一些統計數據表明,通過首先比較字符串大小,可以消除很高比例的字符串比較。所以我很想知道NSString compare:方法是否考慮到了這一點。有人知道嗎?NSString比較效率
0
A
回答
2
根據消息來源here(這只是一個實現,其他可能會有所不同),compare
不首先檢查長度,這實際上是有道理的,因爲它不是一個相等性檢查。由於它返回一個小於/等於/大於返回碼,它有檢查字符,即使長度是相同的。
如果長度不同,純粹的isEqual
類型的方法可能能夠快速進行字符檢查,但compare
沒有那種奢侈品。
它確實對零長度進行檢查,但不能比較兩個長度之間的對比。
1
是的。它還檢查之前的指針是否相等(它涵蓋了常量字符串大小寫以及其他字符串解析和字符串ROM)。
(編輯)此答案適用於-isEqualToString :,不是--compare :.我誤讀
相關問題
- 1. 比較效率
- 2. C++ int比較效率
- 3. PHP回聲效率比較
- 4. 如何有效比較兩個NSString
- 5. 如何比較NSString *
- 6. objective c NSString比較
- 7. NSRegularExpression和NSString比較
- 8. 效率:Java中的UUID與int比較
- 9. 的NSString比較的問題
- 10. 快速比較NSArray和NSString?
- 11. 理解的NSString比較
- 12. iphone比較 與NSString
- 13. 有效的比較
- 14. 問題比較NSString文字和常數
- 15. 不區分大小寫的NSString比較
- 16. NSTask到NSString比較不起作用
- 17. 比較Objective-C常量字符與NSString
- 18. 從NSData打印NSString&比較HMAC哈希
- 19. NSArray元素與NSString的比較
- 20. 轉換和比較NSString和NSDate
- 21. 比較NSString到SQLite數據庫字段
- 22. NSString比較不適用於iPAD
- 23. 循環效率對比
- 24. 不同的二項式係數算法的效率比較
- 25. 在內存分配方面的Java效率比較
- 26. List.Sort兩次的效率與List.Clone&Sort的比較
- 27. 如何比較不同佈局的效率?
- 28. 如何測量Python中的關係比較效率?
- 29. Ruby中的每個內存效率與reduce/inject的比較
- 30. 優化sql連接查詢,比較查詢效率
這些來源不是OSX中使用的來源,但您的觀點仍然不錯 – 2013-05-04 07:02:44
@paxdiablo有趣的資源。值得注意的是,isEqualToString:確實首先進行檢查。 – stephen 2013-05-04 07:08:57