Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在退出java(Grails)应用程序后,“;“用过的”;内存不可用';我不能释放_Java_Grails_Memory_Ubuntu_Xen - Fatal编程技术网

在退出java(Grails)应用程序后,“;“用过的”;内存不可用';我不能释放

在退出java(Grails)应用程序后,“;“用过的”;内存不可用';我不能释放,java,grails,memory,ubuntu,xen,Java,Grails,Memory,Ubuntu,Xen,在Xen VPS中使用Linux 3.2.0-24-virtual#37 Ubuntu SMP Wed Apr 25 12:51:49 UTC 2012 i686 i686 i386 GNU/Linux 在运行Grails java应用程序之前,运行free-m表示: total used free shared buffers cached Mem: 4031 155 3875

在Xen VPS中使用
Linux 3.2.0-24-virtual#37 Ubuntu SMP Wed Apr 25 12:51:49 UTC 2012 i686 i686 i386 GNU/Linux

在运行Grails java应用程序之前,运行
free-m
表示:

             total       used       free     shared    buffers     cached
Mem:          4031        155       3875          0         30         87
-/+ buffers/cache:         37       3994
Swap:         8191          0       8191
             total       used       free     shared    buffers     cached
Mem:          4031       1031       2999          0         33        957
-/+ buffers/cache:         40       3991
Swap:         8191          0       8191
运行Grails应用程序、执行一些内存密集型处理并通过
Ctrl-C
退出后,它表示:

             total       used       free     shared    buffers     cached
Mem:          4031        155       3875          0         30         87
-/+ buffers/cache:         37       3994
Swap:         8191          0       8191
             total       used       free     shared    buffers     cached
Mem:          4031       1031       2999          0         33        957
-/+ buffers/cache:         40       3991
Swap:         8191          0       8191
在重新启动之前,它似乎不会改变
top
ps aux
不表示内存使用量过大。Grails应用程序是我在这台机器上运行的唯一应用程序


也许我误解了这一点,但我担心的是,退出后,记忆似乎无法释放。通常我会怀疑内存泄漏,但一旦java应用程序终止,这怎么可能呢?

您实际上误解了命令的输出

Mem
行显示内核当前分配了多少内存;但是,内核会延迟释放内存。如果没有其他进程请求内存,它可能会保留分配的页面(可能是从磁盘读取的内容)

“清除”已用/可用内存的行是
-/+buffers/cache
行,您可以在该行中看到内存使用量大致相同


你可以在网上找到一些更详细的解释,例如,

你有没有用
ps-elf | grep-java
检查过JVM是否在运行?只是
grep-java
在运行:)有趣的是,多次运行和查询应用程序总是会在退出后留下相同的数字(~1034)谢谢,我最好温习一下免费的