Getting Size of Heap and Non Heap Memory in CFML


I was helping out a member of my CFUG with some questions about the JVM, and I wanted to point him to a way to see how big his PermGen is at runtime. Back in the CF6 days I published some CFML code to get the heap memory usage, but that does not include the PermGen, so here's how you get it:

<cfset mf = CreateObject("java", "")>
<cfset memBean = mf.getMemoryMXBean()>
<cfset heapMem = memBean.getHeapMemoryUsage()>
<cfset nonHeapMem = memBean.getNonHeapMemoryUsage()>

Heap Memory: #Round(heapMem.getUsed()/1024/1024)#mb In Use 
	(#Round(heapMem.getCommitted()/1024/1024)#mb Committed,
	 #Round(heapMem.getMax()/1024/1024)# Max Allowed Size)<br />

Non Heap Memory (PermGen & Code Cache): #Round(nonHeapMem.getUsed()/1024/1024)#mb In Use 
	(#Round(nonHeapMem.getCommitted()/1024/1024)#mb Committed,
	 #Round(nonHeapMem.getMax()/1024/1024)# Max Allowed Size)

What is the PermGen / What does the PermGen Store?

The PermGen is short for Permanent Generation it is used to store loaded Java class information and metadata. Once you application is fully loaded and all code points have been executed your PermGen typically stays level, unless you are doing dynamic class loading (eg with JavaLoader or some other custom class loader.).

Related Entries

This entry was:

 Download FuseGuard WAF for ColdFusion


Trackback Address: 821/9EF57EDA4461BE4D93DDBFF7B68DB470


On 07/23/2013 at 3:45:40 AM UTC David Boyer wrote:
If you want to dig further into the heap and non-heap memory, you can delve into the memory stats for their individual memory pools. That way you can see exactly how much is in the Perm Gen, separately from the code cache and other pools.

Check out the following ColdFusion component as an example on accessing the statistics (Testing in CF10, should work in CF9, Java methods should work from CF6+, untested on Railo but should work).

On 07/23/2013 at 12:19:00 PM UTC Pete Freitag wrote:
Thanks David!

Post a Comment


Spell Checker by Foundeo

Recent Entries


did you hack my cf?