站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Eclipse 专题Eclipse中你一定见过-vmargs -Xmx ...

Eclipse中你一定见过-vmargs -Xmx ...

摘要: Eclipse中你一定见过-vmargs -Xmx ...

吃内存,这是我对Eclipse的印象,因为我512M的机子总出现内存不足,请用-vmargs -Xmx 调整的提示。然后,我只能关闭Eclipse,不然它就消极怠工。平时,我的大脑对这类提示信息采取的是习惯性过滤,可是今天我忍无可忍了 ,我要看看到底怎么搞,写代码的日子才能好过些。
这是我在网上查到的资源:

Java 虚拟机调整
默认情况下,代理使用大小为 192MB 的 JVM 堆。通常,这对于较大的消息负荷来说太小,应该增大。

当代理快要耗尽 Java 对象使用的 JVM 堆空间时,它将使用各种技术(如流控制和消息交换)来释放内存。在极端情况下,代理甚至关闭客户机连接以释放内存并减少消息内流。所以最好将最大 JVM 堆空间设置得足够大,以避免这种情况。

但是,与系统的物理内存相比,如果最大 Java 堆空间设置过大,代理将继续增大 Java 堆空间,直至整个系统耗尽内存。这会导致性能的降低、不可预计的代理崩溃和/或影响系统中运行的其他应用程序和服务的行为。通常,需要有足够的物理内存以便操作系统和其他应用程序在计算机上运行。

总的说来,好的方法是:估算正常和峰值系统内存容量,并配置 Java 堆大小,使其足以提供良好性能,但同时不应过大,以免引起系统内存问题。

要更改代理的最小和最大堆大小,请在启动代理时使用 -vmargs 命令行选项。例如:

/usr/bin/imqbrokerd -vmargs "-Xms256m -Xmx1024m"

此命令会将启动 Java 堆大小设置为 256MB,将最大 Java 堆大小设置为 1GB。

在 Solaris 上,如果通过 /etc/rc(即 /etc/init.d/imq)启动代理,请在 /etc/imq/imqbrokerd.conf 文件中指定代理的命令行参数。有关详细信息,请参见该文件中的注释。
在 Windows 上,如果将代理作为 Window 服务启动,请使用 imqsvcadmin install 命令的 -vmargs 选项指定 JVM 参数。在任何情况下,请通过检查代理的日志文件或通过使用 imqcmd metrics bkr -m cxn 命令验证设置。

服务管理器实用程序 (imqsvcadmin)

可以使用服务管理器实用程序 (imqsvcadmin) 安装、查询和删除作为 Windows 服务运行的代理。本节介绍了 imqsvcadmin 命令的基本语法,提供了一个子命令列表,概述了 imqsvcadmin 命令选项,并说明了如何使用这些命令执行特定的任务。

imqsvcadmin 命令语法

imqsvcadmin 命令的一般语法如下:

imqsvcadmin subcommand [options]

imqsvcadmin -h

请注意,如果指定 -v、-h 或 -H 选项,将不会执行命令行中指定的其他子命令。例如,输入以下命令将显示帮助信息,而不是执行 query 子命令。

imqsvcadmin query -h

imqsvcadmin 子命令

表 D-1 列出了 Message Queue 服务管理器实用程序 (imqsvcadmin) 包含的子命令:

<table id=SummaryNotReq25254 cellSpacing=0 cellPadding=5 border=1>

表 D-1 imqsvcadmin 子命令

<tr vAlign=top align=left bgColor=#cdccee> <th scope=col>

子命令

</th> <th scope=col>

说明

</th></tr> <tr vAlign=top align=left> <td>

install

</td> <td>

安装服务并特定启动选项。

</td></tr> <tr vAlign=top align=left> <td>

query

</td> <td>

显示 imqsvcadmin 命令的启动选项。启动选项包括服务的启动方式(手动或自动)、服务的位置、Java 运行时的位置以及启动时传递给代理的参数值。

</td></tr> <tr vAlign=top align=left> <td>

remove

</td> <td>

删除服务。

</td></tr></table>

imqsvcadmin 选项概述

表 D-2 列出了 imqsvcadmin 命令的选项。有关如何使用这些选项的论述,请参见基于任务的以下各节。

<table id=SummaryNotReq25287 cellSpacing=0 cellPadding=5 border=1>

表 D-2 imqsvcadmin 选项

<tr vAlign=top align=left bgColor=#cdccee> <th scope=col>

选项

</th> <th scope=col>

说明

</th></tr> <tr vAlign=top align=left> <td>

-h

</td> <td>

显示使用帮助。不在命令行执行其他命令。

</td></tr> <tr vAlign=top align=left> <td>

-javahome path

</td> <td>

指定要使用的替代 Java 2 兼容运行时(默认使用系统上的运行时或 Message Queue 附带的运行时)的路径。

示例:imqsvcadmin -install -javahome d:\jdk1.4

</td></tr> <tr vAlign=top align=left> <td>

-jrehome path

</td> <td>

指定替代 Java 2 兼容 JRE 的路径。

示例:imqsvcadmin -install -jrehome d:\jre\1.4

</td></tr> <tr vAlign=top align=left> <td>

-vmargs arg [[arg]]

</td> <td>

指定传递给正在运行代理服务的 Java VM 的其他参数。(也可以在 Windows 服务控制面板的启动参数字段中指定这些参数。)

示例:-vmargs -Xms16m -Xmx128m

</td></tr> <tr vAlign=top align=left> <td>

-args arg [[arg]]

</td> <td>

指定传递给代理服务的其他命令行参数。有关 imqbrokerd 选项的说明,请参见“启动代理”。

(也可以在 Windows 服务控制面板的启动参数字段中指定这些参数。)例如,

imqsvcadmin -install -args -passfile d:\imqpassfile

</td></tr></table>

使用 -javahome、-vmargs 和 -args 选项指定的信息存储在 Window 注册表项 JavaHome、JVMArgs 和 ServiceArgs 下,其路径位于

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\iMQ_Broker\Parameters

删除代理服务

删除代理服务之前,应使用 imqcmd shutdown bkr 命令关闭代理。然后使用 imqsvcadmin remove 命令删除服务并重新启动计算机。

重新配置代理服务

要重新配置服务,首先要删除服务,然后重新安装并使用 -args 参数指定不同的启动选项。

使用替代 Java 运行时

可以使用 -javahome 或 -jrehome 选项指定替代 Java 运行时的位置。(也可以在 Windows 服务控制面板的启动参数字段中指定这些选项。)请注意,启动参数字段将反斜杠 (\) 作为转义符进行处理,因此如果要使用它作为路径分隔符,必须键入两次,例如 -javahome d:\\jdk1.3。

查询代理服务

要确定代理服务的启动选项,请使用 imqsvcadmin 命令的 -q 选项。

<table style="WIDTH: 522px; HEIGHT: 204px" cellSpacing=0 cellPadding=2 width=522 summary="Table border" border=1> <tr> <td> <table id=wp940173 style="WIDTH: 501px; HEIGHT: 204px" cellPadding=2 summary="This table is used for code examples" border=0> <tr vAlign=top align=middle> <th scope=col>

</th></tr> <tr vAlign=top align=left> <td>

imqsvcadmin -query

</td></tr> <tr vAlign=top align=left> <td>

</td></tr> <tr vAlign=top align=left> <td>

Service iMQ_Broker is installed.

</td></tr> <tr vAlign=top align=left> <td>

Display Name: iMQ_Broker

</td></tr> <tr vAlign=top align=left> <td>

Start Type: Manual

</td></tr> <tr vAlign=top align=left> <td>

Binary location: c:\Program Files\Sun Microsystems\Message Queue 3.5\bin\imqbrokersvc

</td></tr> <tr vAlign=top align=left> <td>

JavaHome: c:\j2sdk1.4.0

</td></tr> <tr vAlign=top align=left> <td>

Broker Args: -passfile d:\imqpassfile

</td></tr> <tr vAlign=top align=left> <td>

</td></tr></table></td></tr></table>
嗯,看了之后知道该怎么搞定了,但愿改了以后能告别那个该死的提示。
这是我的更改:
F:\eclipse\eclipse.exe -vmargs -Xmx256m

参考:http://docs.sun.com/source/817-7211/index.html

↑返回目录
前一篇: 轻松搞定Eclipse配置(一)
后一篇: 在 Eclipse 3.1 中使用 CVS