如何增加JVM的堆大小

56

我遇到了以下错误:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
        at SQLite.Vm.step(Native Method)
        at SQLite.Database.get_table(Database.java:314)
        at SQLite.JDBC2z.JDBCStatement.executeQuery(JDBCStatement.java:120)
        at SQLite.JDBC2z.JDBCStatement.executeQuery(JDBCStatement.java:168)
        at TestData.readData(TestData.java:21)
        at TestData.main(TestData.java:41)
6个回答

91

以下是几种可用于更改堆大小的选项。

-Xms<size>        set initial Java heap size
-Xmx<size>        set maximum Java heap size
-Xss<size>        set java thread stack size


java -Xmx256m TestData.java

15

Java命令行参数

-Xms: initial heap size
-Xmx: Maximum heap size
如果你正在使用Tomcat,请更新CATALINA_OPTS环境变量。
export CATALINA_OPTS=-Xms16m -Xmx256m;

13

使用 -Xms=[size]、-Xmx 和 -XX:MaxPermSize=[size]、-XX:MaxNewSize=[size] 启动该程序。

例如 -

-Xms512m -Xmx1152m -XX:MaxPermSize=256m -XX:MaxNewSize=256m

9

8

使用 -Xms1024m -Xmx1024m 来控制您的堆大小(1024m 仅用于演示,确切的数字取决于您的系统内存)。将最小和最大堆大小设置为相同通常是最佳实践,因为 JVM 不需要在运行时增加堆大小。


精确意味着-Xms1024m -Xmx1024m 还是实际物理内存? - diyoda_

2

-XmxSIZE

例如: -Xmx1024M

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接