169 karma · joined May 20, 2010
5-10k seems like a low enough volume for 3rd party to be a good idea.
When you get to the high hundred thousands (let alone millions or tens of millions) it becomes prohibitively expensive to not roll in your own system.
If you had read 'til the end you would have found multiple statements that OSAtomic* is merely an alternative. Not a silver bullet. Not the fastest.
From the conclusion:
"It's very important to understand that every example in this article could have legitimately been solved with different concurrency primitives — like semaphores and locks — without any noticeable impact to a human playing around with your app."
Also, "(...) is always going to be best executed, quickest, using GCD." is kind of a blanket statement. I'd be careful around the use of "always".
It's meant to be a somewhat-easy-to-digest introduction to lock-free design, where applicable.
What @synchronized ends up doing is far more complex — it has to be, to ensure the correctness of its purposes: https://github.com/opensource-apple/objc4/blob/master/runtim...
How would you rephrase that? Just "low level atomic", "atomic"?
You can get the same with Dropbox but with a lot more interactions, so it kinda breaks the work flow.
My DB spiritual advisor tells me the rule of thumb is <= 500KB -> DB, > 500KB -> filesystem. I'll have to test performance of storing the binary stuff outside of the DB.
PS: By "truckloads" I mean tables with anything over 10 fields. I hate god tables/objects :)