2015-07-21 16 views
7

Objective-C'de metot swizzlingi kullanılırken hangi performans cezaları ortaya çıkar?Amaç-C yöntemi swizzling performansı

Eğer varsa, derleyici optimizasyonları mesaj atlatmakla yeniliyor?

+6

Bu soruya kanaat bazlı cevaplar üretilemez. Derleyici malzemelerini bilen bir kişi bunu gerçeklerle yanıtlayabilir. @pjs ve co, av noktalarını durdurun. –

+4

Ben de bu sorunun cevabını bilmek istiyorum. –

cevap

3

Swizzling, Objective-C çalışma zamanını yöntem önbelleklerini temizler. Eğer tüm sersemlemenizi programınızda mümkün olduğunca erken yaparsanız, bu muhtemelen dikkate değer bir etki yaratmayacaktır.

Derleyici, yöntem çağrılarını en iyi duruma getirmek için pek bir şey yapamaz; çünkü Objective-C, çalışma zamanında (swizzling gibi) bile herhangi bir yöntemin geçersiz kılınmasına izin verir. Öyleyse, kullanıp kullanmadığınıza kadar swizzling'in performans fiyatını zaten ödediniz.