我正在使用maven、jetty、scala、scalate和scalate-ssp运行一个简单的"hello world“web服务器项目。
使用"mvn :run“运行项目,需要120 -o的rss内存(ps -o RSS、etime、pid、命令)。
然而,在另一台计算机上运行完全相同的项目需要480 on的RSS内存。
第一台计算机,mac: uname -a
Darwin mac.local 11.4.0 Darwin Kernel Version 11.4.0: Mon Apr 9 19:32:15 PDT 2012; root:xnu-1699.26.8~1/RELEASE_X86_64 x86_64第二台计算机,linux: uname -a
Linux linux.local 2.6.32-220.2.1.el6.x86_64 #1 SMP Fri Dec 23 02:21:33 CST 2011 x86_64 x86_64 x86_64 GNU/Linux怎样才能解释这种差异?
我有一个记忆有限的环境。如何减少第二台计算机的RSS内存?
从joakime:的答案更新:
麦克:
Java HotSpot(TM)
Java version: 1.6.0_33, vendor: Apple Inc.
Apache Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100)Linux:
OpenJDK
Java version: 1.6.0_24, vendor: Sun Microsystems Inc.
Apache Maven 3.0.4 (r1232337; 2012-01-17 09:44:56+0100)mac的Runtime.getRuntime().maxMemory()是120 mac,而linux的.maxMemory()是3500 mac。
现在我带着:
export MAVEN_OPTS="-Xmx256m -Xms10m"; mvn jetty:run在linux上,Runtime.getRuntime().maxMemory()给出了现在的227 of (而不是3500 of)。
然而,执行"ps -o rss、etime、pid、命令“仍然会给出430-o的RSS内存。我需要RSS内存小于250 be。
如何做到这一点?
发布于 2012-08-15 22:00:51
如果没有更多的信息,我将推测您有不同的JVM实现(1 linux,1 OSX),并且很可能没有为这些JVM指定内存的上限。
注意,不同的JVM可能会指定不同的上限内存默认值。即使是同一版本的oracle也会在不同的OS/硬件组合中指定不同的最大内存限制。
关于这个主题,前面有一个可能有用的问题:What is the default maximum heap size for Sun's JVM from Java SE 6?
此外,maven版本在默认情况下也将使用哪些插件版本不同,您可能会有完全在maven +其插件范围内的差异。
https://stackoverflow.com/questions/11977513
复制相似问题