9

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

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

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

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

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

4

2 回答 2

6

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

于 2012-12-26T21:08:59.810 回答
1

两者都totalMemory报告freeMemoryJVM 的使用情况——我希望它是 CF 服务器(除非你也在同一个 JVM 中运行其他东西)。当然还有任何 JVM 开销。

于 2012-12-26T21:12:39.667 回答