Linked by Thom Holwerda on Mon 20th Jul 2009 19:16 UTC
Permalink for comment 374511
To read all comments associated with this story, please click here.
To read all comments associated with this story, please click here.
News
Linked by Thom Holwerda on 05/19/13 23:15 UTC
Linked by Thom Holwerda on 05/19/13 23:11 UTC, submitted by Drumhellar
Linked by Thom Holwerda on 05/18/13 21:06 UTC
Linked by Thom Holwerda on 05/18/13 7:37 UTC
Linked by fran on 05/18/13 1:38 UTC
Linked by Thom Holwerda on 05/17/13 23:35 UTC, submitted by kragil
Linked by MOS6510 on 05/17/13 22:22 UTC
Linked by Thom Holwerda on 05/17/13 22:15 UTC, submitted by Tom
Linked by Thom Holwerda on 05/16/13 21:41 UTC
Linked by Thom Holwerda on 05/16/13 17:04 UTC
More News »
Sponsored Links



Member since:
2007-07-27
Ok, it is your choice, if you do not care about keeping your data safe (ZFS), or making your programming easier (DTrace).
But just one thing, please just skim this articles and see if you really really really do not think that OpenSolaris is totally awesome. Because, this stuff no other OS can do. This is totally unique for a developer. I can not really understand why you would think this stuff not the-coolest-thing-on-earth-right-now!
PHP development
http://blogs.sun.com/bmc/entry/dtrace_and_php_demonstrated
Rails
http://blogs.sun.com/bmc/entry/dtrace_on_rails
Java
http://blogs.sun.com/ahl/date/20050418#dtracing_java
Java Swing
http://blogs.sun.com/bmc/date/20050418#your_java_fell_into_my
And this is possible for other languages as well. DTrace helps Solaris kernel developer tremendously to iron out the bugs. People are in total awe of DTrace (and ZFS, Zones, etc etc). Maybe you non-solaris users fail to see why we are in total awe, or maybe we solaris users are very easily impressed:
"I looked at one customer's application that was absolutetly dependant of getting the best performance possible. Many people for many years had looked at the app using traditional tools. There was one particular function that was very "hot" - meaning that it was called several million times per second. Of course, everyone knew that being able to inline this function would help, but it was so complex that the compilers would refuse to inline.
Using DTrace, I instrumented every single assembly instruction in the function. What we found is that 5492 times to 1, there was a short circuit code path that was taken. We created a version of the function that had the short circuit case and then called the "real" function for other cases. This was completely inlinable and resulted in a 47 per cent performance gain.
Certainly, one could argue that if you used a debugger or analyzer you may have been able to come to the same conclusion in time. But who would want to sit and step through a function instruction by inctruction 5493 times? With DTrace, this took literally a ten second DTrace invocation, 2 minutes to craft the test case function, and 3 minutes to test. So in slightly over 5 minutes we had a 47 percent increase in performance.
Another case was one in which we were able to observe a high cross call rate as the result of running a particular application. Cross calls are essentially one CPU asking another to do something. They may or may not be an issue, but previously in was next to impossible (okay, really impossible) to determine their effecs with anything other than a debug version of the kernel. Being able to correlate the cross call directly to application was even more complex. If you had a room full of kernel engineers, each would have theories and plausible explanations, but no hard quantifiable data on what to do and what the impact to performance would be.
Enter DTrace.... With an exceedingly simple command line invocation of DTrace, we were able to quickly identify the line of code, the reason for the cross calls, and the impact on performance. The basic issue was that a very small region of a file was being mmap(2)'d, modified, msync(3C)'d, and then munmap(2)'d. This was basically being done to guarantee that the modified regoin was sync'd to disk.
The munmap(2) was the reason for the cross call and the application could get the same semantics by merely opening the file with O_DSYNC. This change was made and performance increased by almost double (not all from the cross calls, but they were the "footprint" that lead us down this path). So we went from an observable anomaly that previously had no means of analysis to a cause and remediation in less that 10 minutes."
EDIT: See DTrace in action on Linux (on top Solaris with Zones a.k.a BrandZ), where DTrace helps spotting less optimal behavior of "top" command:
http://blogs.sun.com/ahl/entry/dtrace_for_linux
Edited 2009-07-21 19:37 UTC