Do you check that your JBoss app is running under the same condition as you monitored without whatching VisualVM?
I agree to Peter that VisualVM will weight the results (but BTW every measurement will do this).
You must have clear expectations what you want.
Are you looking for a bug or a special problem, e.g. concurency problems of threads under heavy load will not happen if you use a profiler.
I start with JConsole or jstat to get a picture of memory consumption.
Use a (AOP) Interceptor or special log statements to log duration of calls.
And, if I suppose locking contention, a thread dump.
Profiling will cost a lot of performance, it will be helpful to get snapshots to compare (e.g. memory leaks).
AFAIK Netbeans IDE will have a free profiling tool, maybe the trial version of JProfiler (I'm not sure whether there one still available) will help.
I use a paid version of JProfiler in my last company and it save more money than it costs
Also I would recomend to use the latest JDK version
If you have more informations and special questions your welcome