There are two types of profiling software that come into play here: code profiling, and load testing. The former is specific to your chosen language or platform and a little Googling will go a long way towards finding the best profilers for your environment (assuming there are any). The short short definition is that a code profiler tests the performance of various pieces of your code. They can be terribly useful, especially when you've written nicely modularized code but they're a bit out of scope for this chapter.
When it comes to webapps though, load tests don't have to be tied to your webapp's language or platform at all. There are a number of great open source load testing tools written Java, many of which use Jython. Perl, having been so integral to the web's development has a bunch too. But really it doesn't matter. Look for the tools that will make it easiest to get your tests written. If you can find a tool whose tests can be kicked off by your tests suite it's even better, but since load tests generally take a long time to run they're not something you want to have in every test run.
K. Rhodes 2007-05-18