DTrace

At work today, Tychay shared some of his excitement over DTrace. The PHP community is discovering the benefits of this system. I also had a discussion with another co-worker about this last Friday. So this is worthy of a blog post.

Terry sent me these links:

http://netevil.org/node.php?nid=413 http://blogs.sun.com/bmc?entry=dtraceandphp http://blogs.sun.com/roller/page/bmc?entry=dtraceandphp_demonstrated

Here is one for Terry:

This is a sample session of a guy finding a memory leak in a window manager. Imagine doing that without this tool. Very very difficult. http://blogs.sun.com/roller/page/alanc?entry=dtracingdownanxserver

I read about DTrace when it came out and talked about some of the cool things it does. Read about the binary instrumentation techniques. I think they have set the bar for my expectation. This product is so cool I thought about running DTrace on a box at home. The problem was, I couldn’t get OpenSolaris to install. I also found the environment to be clunky. They need to remember that people don’t want to invest 2 hours of their time to get a Unix proper for use (editors, nice utils, and a decent tool chain.) So, I didn’t take it any further.

Still, I see myself using DTrace in the future. If I ever run into a serious issue or performance question, I will try it out on OpenSolaris and find the problem quickly.

Also, several thoughts. come out of this.

  1. This didn’t come from the BSD/GPL community. Why? Because real software innovation requires actual change and research and sweat. You can’t pull a 3 year project off like this without paying some decent salaries and having some infrastructure and tools for these guys at Sun to pull this off. (Note, Sun, in their questionable environment, has open sourced this gem. No doubt the Linux idiots will find flaws in it and try to create their own “Better (TM)” version.

  2. This was a Small team that pulled this off at Sun. Small teams work better than large teams.

  3. Having symbols for all code in your system is essential for people to diagnose issues. I’m glad Sun is taking this to heart. If you use Microsoft’s WinDbg tools, they give you symbol availability to just about every .EXE and .DLL they’ve shipped, via the internet. This visibility is essential for programmers to find bugs and solve problems quickly.

  4. Binary instrumentation is the future. End of story.

This entry was posted in General. Bookmark the permalink.