3.YYModel 性能優化的幾個 Tip
第一:Key-Value Coding 使用起來非常方便,但性能上要差于直接調用 Getter/Setter,所以如果能避免 KVC 而用 Getter/Setter 代替,性能會有較大提升。
第二:如果能直接訪問 ivar,則盡量使用 ivar 而不要使用 Getter/Setter 這樣也能節省一部分開銷。
第三:使用純 C 函數可以避免 ObjC 的消息發送帶來的開銷。如果 C 函數比較小,使用 inline 可以避免一部分壓棧彈棧等函數調用的開銷。
第四:在 JSON 和 Model 轉換前,Model 的屬性個數和 JSON 的屬性個數都是已知的,這時選擇數量較少的那一方進行遍歷,會節省很多時間。
最后的總結:其實大部分總結內容都來自github,和https://blog.ibireme.com/2015/10/23/ios_model_framework_benchmark/,正是這么多的優化,才有了YYModel的高性能,希望大家能多看一下源碼是如何做的,對我們來說也是一個提高