Twitter | Search | |
David Smith 13 Jun 16
btw, NSArray and CFArrayCreate* will now return _NSArrayI and _NSArrayM instances on iOS/watchOS/tvOS as they have for some time on macOS.
Reply Retweet Like
Paul Haddad 13 Jun 16
Replying to @Catfish_Man
favorite iOS/macOS 10/.12 performance tweak?
Reply Retweet Like
David Smith 13 Jun 16
Replying to @tapbot_paul
os_unfair_lock by a light year. In F/CF land though, there’s a lot… hm… * CF_IS_OBJC is way faster (used in bridging)
Reply Retweet Like
David Smith
* _NSDictionaryM combines buffers for 33-50% fewer mallocs * -retain/isEqual/hash on CF types calls new _CFNonObjC*
Reply Retweet Like More
David Smith 13 Jun 16
Replying to @tapbot_paul
* CFRetain calls objc_retain instead of -retain * Collections call objc_retain instead of CFRetain * Silly memcpy tricks
Reply Retweet Like
David Smith 13 Jun 16
Replying to @tapbot_paul
remind me to dig up some more later. Out and about now.
Reply Retweet Like
Paul Haddad 13 Jun 16
Replying to @Catfish_Man
on the I/M variants, is I significantly faster/smaller? Meaning it might make sense to copy an NSMutableArray after creation?
Reply Retweet Like
David Smith 13 Jun 16
Replying to @tapbot_paul
_NSArrayI is a single allocation. _NSArrayM has a pointer to a separate buffer.
Reply Retweet Like
David Smith 13 Jun 16
Replying to @tapbot_paul
. oh, plist encoding/decoding should be a bunch faster due to various changes, but I’ve had trouble getting reliable numbers.
Reply Retweet Like
David Smith 13 Jun 16
Replying to @tapbot_paul
and CFStringCreateCopy early-outs for tagged pointers now, which makes it 4x faster for ~40% of strings.
Reply Retweet Like