java.lang.Runtime是否报告整个Coldfusion服务器或仅一页的内存使用情况?

时间:2012-12-26 20:43:12

标签: java memory coldfusion

我正在使用以下ColdFusion代码计算已用内存。

 runtime = CreateObject("java", "java.lang.Runtime").getRuntime();

然后在循环中,我执行以下操作来计算已用内存。

var usedGB = (runtime.totalMemory() - runtime.freeMemory()) / 1024.^3; // bytes -> KB -> MB -> GB

这告诉我从页面开始就使用了近200 MB。这是CF服务器使用了多少,或者这只是我页面的一些开销?

2 个答案:

答案 0 :(得分:6)

运行时为您提供已分配的堆数。这包括对象和TLAB,因此实际使用的内存量略小于此值。这是整个JVM使用的数量,包括ColdFusion服务器或您正在运行的任何其他应用程序或库。无法跟踪单个页面或线程使用的内容,并且内存不是页面或线程的本地内容。

答案 1 :(得分:1)

totalMemoryfreeMemory都报告了JVM的用法 - 我希望它是CF服务器(除非你在同一个JVM中运行其他东西)。当然还有任何JVM开销。