A surprising real world 70x performance jump
summary
A Mac app with ~500k LOC and user project files up to 35 GB project cuts load from 1m25s to 2.5 seconds by replacing full unarchive with Objective‑C runtime lazy loading: NSProxy placeholders, in‑place class replacement via objc_constructInstance/obj_setClass, forwardInvocation to dearchive on first use. Saving drops from 4m14s to 7 seconds by using APFS clone then switching the file format to SQLite, writing changed objects and removing old rows with a recursive SQL CTE; works but adds fragmentation and edge‑case bugs.
AI-written summary · about
chapters (10)
- 0:00Introduction to Sparkle
- 2:14Problem with project files
- 6:12Improving load time
- 8:40Lazy loading with NSProxy
- 13:46Results of lazy loading
- 16:16Improving save time
- 18:44Switching to SQLite
- 22:15Optimizing object graph
- 27:14Final performance gains
- 28:42Q&A session
related talks
33mThis Old App
33mLeveraging Composable Architecture at Scale
54mPerformance Architecture
20mYou Are the CPU: What CS Can Teach Us About Ourselves to Improve Developer Efficiency
19mKeynote – Adam Hooper
31mImproving Android Build performance
43mPower of collective intelligence
48mRewriting Parse.com for scale
