Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [linuxtools-dev] Memory usage of TmfExperiment

2014-08-06 17:15 GMT-04:00 Marc-André Laperle <marc-andre.laperle@xxxxxxxxxxxx>:
Hi Francis,

Did you have a specific reason to get the heap dump using code?

It allows to save the dump at a specific place in the code.
 
You should be able to acquire a Heap dump (hprof) from within MAT using File > Acquire heap dump. VisualVm also can do that I believe (right-click on process?). There is also the jmap command that can output a heap dump. Just to save you some time for next time ;)

Yeah, but snapshot taken interactively are very cumbersome for batch jobs. I tried to put a sleep where I wanted the snapshot, and then go to the MAT UI and click, but I was feeling like mr bean[1] playing to the incredible machine[2]. But maybe I missed something?

The dump can also be triggered by OutOfMemoryError by passing -XX:+HeapDumpOnOutOfMemoryError as VM argument, but it doesn't work by manual throw new OutOfMemoryError(). It must be done by the VM itself.

Besides that, one of the issue is not to minimize the average memory, but also prevent high peak memory usage, because that may trigger the OutOfMemoryError. The Massif tool of Valgrind is able to record peak memory usages for C/C++. Does somebody knows if there is a way to monitor peaks memory usage in Java, ans possibly trigger a dump even if the OutOfMemoryError is not reached?

Cheers,

Francis

 

Marc-Andre


From: linuxtools-dev-bounces@xxxxxxxxxxx [linuxtools-dev-bounces@xxxxxxxxxxx] on behalf of Francis Giraldeau [francis.giraldeau@xxxxxxxxx]
Sent: Wednesday, August 06 2014 11:15 AM
To: Linux Tools developer discussions
Subject: [linuxtools-dev] Memory usage of TmfExperiment

I used Eclipse Memory Analyzer (MAT) to find the object holding a reference to a large temporary chunk of memory. It appears that TmfExperiment is not AutoClosable as other traces, and calling dispose() method on the experiment solved the issue. (Whole story: http://multivax.blogspot.ca/2014/08/pinpoint-memory-usage-of-java-program.html )

For the debugging, I needed the HeapDump class. However, I could not find it in other linuxtools plug-ins, and I don't know how to search for that class in p2 repo, such as Orbit. I think that would be very helpful to have it in the class path. Here is the slightly modified version I have: 


Cheers,

Francis

_______________________________________________
linuxtools-dev mailing list
linuxtools-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/linuxtools-dev


Back to the top