我不理解java -Xms -Xmx的概念,高手指导一下。

jhtisboy 2003-09-01 02:54:55
做java也做了一年了,居然不了解JVM的机制,哈哈,不好意思啦。
其中我看到说可以设置JVM的堆的大小,就是用上面的两个参数
其中第一个是初始值,后一个是最大值。
我现在想问的是这两个参数是设置JVM的堆的大小的,但是JVM本身就是
已经装好了的产品,难道要在运行某一个Java程序的时候指定吗?
另外我比如有几个Java应用程序,如果都用到这两个参数,那么JVM到底用
那个参数呢,比如:
java -Xms20m -Xmx200m server1
java -Xms30m -Xmx300m server2
java -Xms40m -xmx400m server3

另外有的时候听人说运行在同一个JVM上的两个应用程序,这又是什么概念,请
高手指导一下。
...全文
630 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jhtisboy 2003-09-02
  • 打赏
  • 举报
回复
能来个高手回答一下吗?
jhtisboy 2003-09-02
  • 打赏
  • 举报
回复
请各位高手再来回答一下我上面的疑问
jhtisboy 2003-09-01
  • 打赏
  • 举报
回复
请问cbhyk,
首先,每执行一次java ...或javaw ...就会启动一个JVM。
(这个原来是这样的,明白)

对于你说的Web应用程序和企业应用程序可以多个应用程序运行于一个JVM上,我举个例子,比如weblogic server
他起动的时候是用java weblogic.server启动的
然后web应用和ejb部署到weblogic server上的时候应该是和weblogic.server在同一个JVM中
那么我想了解的就是web应用和ejb应用如何才能和weblogic.server在同一个JVM中呢。

另外你说的企业应用程序就是ejb吧,对于你说的企业应用程序可以运行于多个JVM中。
是如何实现的呢,我不明白,请仔细说说。


joyrush 2003-09-01
  • 打赏
  • 举报
回复
哇 楼上是从那里学来的..
jSirius 2003-09-01
  • 打赏
  • 举报
回复
JVM的堆, 不制定的话, 最小2m, 最大64m. 一般情况下不需要改变. 但是特殊情况, 不变大是不行的.
JVM的堆还分 New和OLD两个领域, New领域里, gc是高速的(0.01 ~ 0.1秒). 经过32次gc, 残留下来的入OLD领域, OLD领域里是 full gc, 速度很慢(0.1 ~ 1秒). New领域还分为Eden领域和Survivor领域, Object刚生成的时候, 进Eden. 两者的比例关系推荐为3:1.
至于什么时候是特殊情况, 那就不好判断了. hehe, 当时我的一个项目处理出现严重问题, 根本就想不到这方面. 3个月后才解决.
shine333 2003-09-01
  • 打赏
  • 举报
回复
C:\>java -X
-Xmixed mixed mode execution (default)
-Xint interpreted mode execution only
-Xbootclasspath:<directories and zip/jar files separated by ;>
set search path for bootstrap classes and resources
-Xbootclasspath/a:<directories and zip/jar files separated by ;>
append to end of bootstrap class path
-Xbootclasspath/p:<directories and zip/jar files separated by ;>
prepend in front of bootstrap class path
-Xnoclassgc disable class garbage collection
-Xincgc enable incremental garbage collection
-Xbatch disable background compilation
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<size> set java thread stack size
-Xprof output cpu profiling data
-Xrunhprof[:help]|[:<option>=<value>, ...]
perform JVMPI heap, cpu, or monitor profiling
-Xdebug enable remote debugging
-Xfuture enable strictest checks, anticipating future default
-Xrs reduce use of OS signals by Java/VM (see documentation)

The -X options are non-standard and subject to change without notice.

堆的最大和初始值
cbhyk 2003-09-01
  • 打赏
  • 举报
回复
首先,每执行一次java ...或javaw ...就会启动一个JVM。

对于应用程序,要看指的是什么应用程序,如Web应用程序、企业应用程序、执行java ...启动的应用程序(也许可称作Console Application)。Console Application当然就是每个生活服务程序一个JVM中,Web应用程序和企业应用程序可以多个应用程序运行于一个JVM上,企业应用程序可以运行于多个JVM中。
jhtisboy 2003-09-01
  • 打赏
  • 举报
回复
能来一个高手解释一下吗?
jhtisboy 2003-09-01
  • 打赏
  • 举报
回复
jvm的英文名叫做java virtual machine
按翻译来说应该就是一个运行环境
如果不同的应用程序是不同的jvm,这个好象说不过去。
jhtisboy 2003-09-01
  • 打赏
  • 举报
回复
jvm的英文名叫做java virtual machine
我原来是认为多个应用程序都是运行在一个jvm上的
这个我搞不大清楚,哈哈
那运行在同一个jvm上的应用程序是什么意思
lotofu 2003-09-01
  • 打赏
  • 举报
回复
每个应用程序应该都是一个jvm吧?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧