Amazing profiling and tracing tool… Shark

Its been a while, but I still remember scanning the output of strace (and later ktrace) from unix machines, looking for that hint of what went “boom” or was causing significant unhappiness with the machines. So when I read the recent article from Apple Optimizing your Application with System Trace in Shark 4, I was like “What? They do that in Shark too?!”


If you’re a unix hacker, MacOS is the system to get. The development tools are good, but frankly the most amazing development benefits are in the CHUD tools – there’s stuff that is thousands of dollars worth of software in there, and they’re just handing it to you. I’d even bet that if you developed for Linux, you’d find Shark a hell of a benefit to you.

Most of what I knew about Shark I really picked up at the 2004 WWDC, where they had neverending repeats of the “how to use Shark” session scattered about in other sessions. I mean, shoot – you could even profile and use Shark to optimize your Java code! Let alone the wonderful assembly language reference that seemed to be tucked away under the covers in there (yeah, I thought that was cool – so shoot me).

I know a lot of people say that Shark is the best kept secret of the Apple development tools world. Boy, I think that’s going to change. (at least I’m doing my part…)

Published by heckj

Joe has broad software engineering development and management experience, from startups to large companies. Joe works on projects ranging from mobile to multi-cloud distributed systems, has set up and led engineering teams and processes, as well as managing and running services. Joe also contributes and collaborates with a wide variety of open source projects, and writes online at

%d bloggers like this: