Peter, I understand the point that visualvm can be, itself, altering in some sense the environment that it monitors. However, I tried to understand how big is this influnce by means of a simple test (I just don't know whether it was too simple...).
Using visualvm with its default configuration (1s pooling), I noticed that the heap usage of my application oscilates in a window of aproximately 2gb. Then I changed the pooling to 10 and 30 seconds, in two following tests. With these new configurations, the heap usage is still in the same window.
Am I testing this the right way? Should this change in the pooling interval change the size of the windows noticed in the monitoring?