Profiling is an essential part of software development. Profiling tools are generally expensive and not affordable for individual developers and freelancers. But, there are several free, open source profiling tools that are as good as commercial tools.
*J is a toolkit which serves two primary purposes:
A zero-overhead JVMPI plugin for finding first indications of memory leaks in production environments.
Where commercial tools kill the performance of your application by collecting uninteresting performance data (such as who allocated this object ),
The Garbage Collector Spy Tool, or GCspy for short, is a generic and highly-adaptable heap visualisation framework, designed to visualise a wide range of memory management systems, whether they depend on garbage collection or implement explicit de-allocation.