In iOS and macOS(TM) Performance Tuning, Marcel Weiher drills down to the code level to help you systematically optimize CPU, memory, I/O, graphics, and program responsiveness in any Objective-C, Cocoa, or CocoaTouch program. This up-to-date guide focuses entirely on performance optimization for macOS and iOS. Drawing on more than 25 years of experience optimizing Apple device software, Weiher identifies concrete performance problems that can be discovered empirically via measurement. Then, based on a deep understanding of fundamental principles, he presents specific techniques for solving them. Weiher presents insights you won't find anywhere else, most of them applying to both macOS and iOS development. Throughout, he reveals common pitfalls and misconceptions about Apple device performance, explains the realities, and helps you reflect those realities in code that performs beautifully. Understand optimization principles, measurement, tools, pitfalls, and techniques Recognize when to carefully optimize, and when it isn't worth your time Balance performance and encapsulation to create efficient object representations, communication, data access, and computation Avoid mistakes that slow down Objective-C programs and hinder later optimization Fix leaks and other problems with memory and resource management Address I/O issues associated with drives, networking, serialization, and SQLite Code graphics and UIs that don't overwhelm limited iOS device resources Learn what all developers need to know about Swift performance This book's source code can be downloaded at github.com/mpw/iOS-macOS-performance. Register your product at informit.com/register for convenient access to downloads, updates, and corrections as they become available. Normal 0 false false false EN-US X-NONE X-NONE
Make no mistake, this is a valuable addition to almost any advanced-intermediate and many experienced developer's library. It's tough to encapsulate such a broad, somewhat nebulous and often domain-dependent topic, and he touches upon a good range of techniques and approaches for identifying and addressing performance, as well as few deeper dives.
Thing is, it might well also number among one of the most frustrating additions. Because it almost equally comes across a huge rant, sure to annoy the fanboi/gurl end of the dev spectrum. Not unjustifiably so, but we're talking a level that would still be noticeable if toned down an entire order of magnitude. The upshot is that the content is not based on how to best use Apple API, but how to avoid it. This is extremely useful fodder during design or when you've hit a wall, but most folks are going to find that being told to eschew CoreData in favor of roll-your-own structures period, or that Obj-C messaging wrappers and inlining are the be-all end-all proper way to get things done... well, less than helpful when looking for first-pass solutions with sanctioned tools. "Tuning" implies fiddling with existing knobs, a missing emphasis I think many readers would have appreciated.
No doubt I'll come back to this volume repeatedly, and what appears to be exemplary indexing should really help, but I can't say I'm looking forward to having to winnow through the Apple-bashing and references to his own (up to 20-yo) libraries as integral part of the process.