swarm-support
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: profiling


From: Christopher Mackie
Subject: RE: profiling
Date: Wed, 29 Jan 2003 20:49:45 -0500

I don't play with ObjC-Swarm, so I don't have anything useful to contribute: 
I'm sure some longtime Swarmers will.  I imagine I'd use gprof.  
 
I'm also self-taught, so my recommendations say more about my trajectory when 
learning than they do any 'optimal' profiling setup.  With that caveat, here 
goes:
 
My current favorite profiler is one my employer gives me for free:  Rational's 
Quantify.  *Very* nice--does Java/C/C++/VB/.NET, which is handy b/c the current 
project (which has needed major tweaking) is all C++ and lives in Visual 
Studio.NET.  I'm going to hate to start paying for it when I leave, but it's 
worth it.  I also hear good things about Borland's OptimizeIt, and Sitraka's 
JProbe.  They're all pricey--$700 for a single-platform license; $2k+ for 
multi-platform.  However, I believe you can get any of them for a 15-30 day 
eval for free (you certainly can OptimizeIt)--and downloading one of them and 
using the tutorials isn't a bad way to learn profiling.  And Rational (at 
least) has a very generous educational license policy, so if you're at a 
college or U, you may be able to afford it after all. 
 
I'm a little spoiled at this point, so I don't know if I'd go back to freeware 
for profiling: the commercial tools I've played with really are worth the $$$.  
But once upon a time, I used IBM Alpha Works's JInsight, which was free, no 
frills, and did a nice job within its limits.  I don't know if it's still 
available free--they folded a lot of the capabilities into WebSphere a couple 
of years ago, which is often a trigger for the AlphaWorks stuff to disappear.  
Try searching the AlphaWorks website.
 
A search of Freshmeat turned up five Java profiler candidates: maybe somebody 
knows more about them than I do 
(http://freshmeat.net/search/?q=Java%20Profiler).  Most are fairly recent, 
suggesting that they'll work with Java 1.4.  Sourceforge offers Mike's Java 
Profiler (http://mjp.sourceforge.net), and a search on 'Java Profiler' will 
find you some others as well.
 
And don't forget HProf and PerfAnal--they're free, more-or-less built into 
Java, and they work.  There's a useful article with examples at 
 
http://developer.java.sun.com/developer/technicalArticles/Programming/perfanal/
 
While I'm in avuncular mode, anybody trying to wring performance out of Java 
should probably read at least these two books:
 
Wilson, S. & Kesselman, K. (2000)  _Java Platform Performance: Strategies and 
Tactics_ (Sun Press).
Surprisingly good book even for a beginner, especially one looking for 
big-picture stuff, but not really a tutorial.  Getting a bit outdated now 
(though it does cover Swing), but I haven't heard of a new edition.
 
Shirazi, Jack (2003).  _Java Performance Tuning, 2nd Ed._  (O'Reilly & 
Associates)
My Bible for Java tuning: brand-new edition due out this month, haven't seen it 
in the bookstore yet, but it's on my must-buy list.  He provides tuning 
checklists, lists of available tools, and even shows you how to build your own 
tools where the market has not yet provided.  I'm looking forward to his advice 
on tuning some of the Java features new since 2000 (the date of the 1ed.).  
 
Shirazi also has a series of articles on tuning Java at www.ora.com (search on 
his last name).  
 
HTH,  --Chris

        -----Original Message----- 
        From: Rick Riolo [mailto:address@hidden 
        Sent: Wed 1/29/2003 6:48 PM 
        To: Swarm-Support 
        Cc: 
        Subject: RE: profiling
        
        

        Return-Path: address@hidden
        X-OriginalArrivalTime: 29 Jan 2003 23:49:16.0976 (UTC) 
FILETIME=[08E05300:01C2C7F1]
        
        
        So what is your favorite profiling tool for objectiveC-Swarm?
        For Java-Swarm?
        (free ones being preferred, of course...)
        Thanks,
        
        - r
        
        --
        Rick Riolo                           address@hidden
        Center for Study of Complex Systems (CSCS)
        4477 Randall Lab               
        University of Michigan         Ann Arbor MI 48109-1120
        Phone: 734 763 3323                  Fax: 734 763 9267
        http://cscs.umich.edu/~rlr
        
        On Wed, 29 Jan 2003, Christopher Mackie wrote:
        
        > Date: Wed, 29 Jan 2003 18:37:25 -0500
        > From: Christopher Mackie <address@hidden>
        > Reply-To: address@hidden
        > To: address@hidden
        > Subject: RE: Multithreading question
        >
        > I want to support, as loudly as I can, Glen's crucial piece of 
advice: it's all about what *your* code is doing.  We've all found reliable 
tricks and tactics to tweak a few extra cycles out of our sims.  They're useful 
to share, and they often help other people, since many of us run into the same 
basic bottlenecks.  But when it comes right down to it, all the really good 
performance advice you can find on this list--including the createActionForEach 
tip--is the result of someone, somewhere, sometime, profiling code.
        > 
        > If you need performance, you have to learn to profile code.  Before 
you spend $$$ on hardware, or hyperthreading libraries, or consultants, or 
whatever, the smartest investment you can make, with the biggest potential 
return, is to find out what your code is actually doing, and where it's costing 
you.  Not only will those insights often solve your problem for you, but even 
if the problem still stumps you, the pinpoint knowledge you gain about the 
nature of the problem enables the people on this list to help you much more 
effectively.  Best case, you identify an opportunity that leads to an 
improvement in the Swarm source for everyone.
        > 
        > We're a bit unusual among comp support lists, in not "encouraging" 
people to post compilable code illustrating any problem on which they want 
advice or help.  I'm not suggesting we implement that policy, but I *am* 
suggesting that anyone who has a problem should do it anyway--not because we 
insist, but because it's the most productive use of your time and everyone 
else's.  And if you have a performance problem, the only absolutely reliable 
way to know what piece of compilable code to post is to profile your code.
        > 
        > Don't take this as a complaint about the current thread: I'm as 
interested in the topic and the suggestions people are making as anyone could 
be.  I just want to chime in to urge that Glen's excellent foundational advice 
not be overlooked in the flurry of other excellent, ad hoc advice.
        > 
        > Profiling isn't hard to learn, conceptually or technically, but 
nothing's truly easy when you start entirely from scratch.  Maybe a tutorial 
session on profiling Swarm code could be a useful idea for SwarmFest...?
        > 
        > --Chris
        >
        >                   ==================================
        >    Swarm-Support is for discussion of the technical details of the day
        >    to day usage of Swarm.  For list administration needs (esp.
        >    [un]subscribing), please send a message to <address@hidden>
        >    with "help" in the body of the message.
        >
        
        
                          ==================================
           Swarm-Support is for discussion of the technical details of the day
           to day usage of Swarm.  For list administration needs (esp.
           [un]subscribing), please send a message to <address@hidden>
           with "help" in the body of the message.
        
        

<<winmail.dat>>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]