Re:Brad Cox has died
by why_only_15 on Saturday January 23, 2021 @01:26AM
(#25880155)
as i recall, `libobjc` is ~25% of app launch time. `objc_msgSend` is quite expensive when you're making hundreds of thousands to millions of calls per second.
[ Parent
| on HN ]
Although Swift has the spotlight, Objective-C keeps being improved.
"Advancements in the Objective-C runtime"
Swift uses the Objective-C runtime.
Swift can uses the Objective-C runtime for interoperability with Objective-C code, just like .NET uses COM on Windows.
They need to interoperate with the rest of the platform.
Re:Brad Cox has died
by microtherion on Saturday January 23, 2021 @10:42AM
(#25882994)
Swift is tiptoeing between static and dynamic typing, preferring the former when feasible, but often needing some of the latter when dealing with the UI.
I would guess that most of app startup time isn't going to objc_msgSend (although it is still probably slow as it hasn't warmed up yet) but rather to setting up the various data structures used by the runtime, applying initial swizzling and the associated cache invalidation that comes from that, and those pesky +loads that every analytics framework thinks it need to have ;)
The compiler does some very fancy stuff with objc_msgSend to make it fast, and the selectors are interned.
https://www.mikeash.com/pyblog/objc_msgsends-new-prototype.h...