ProfBuilder: A package for rapidly building Java execution profilers. ProfBuilder is a collection of Java classes that provide an easy method for constructing Java execution profiling tools. By instrumenting Java bytecode, a programmer can measure dynamic properties of an application, such as bytecode count, number of memory allocations, cache misses and branches. ProfBuilder provides an easy way to create customized tools to measure these and other properties by writing a small amount of code. Although commercial profiling tools for Java available, there are currently few, if any, Java profiler generators. In this paper, we describe the Prof Builder meta-tool as well as two tools built using the package, a bytecode instruction profiler and a memory allocation profiler. We also describe our experience using these tools on programs, including the overhead of instrumentation and profiling. Finally, we discuss the results of using the instruction profiler to optimize the execution time of a Java program, increasing its performance 15% with minor changes to the code