[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>>
- RE: profiling,
Christopher Mackie <=