相关疑难解决方法(0)

启动JVM时,Xms和Xmx参数是什么?

请解释JVM中的使用XmsXmx参数.它们的默认值是什么?

java parameters jvm memory-management

911
推荐指数
5
解决办法
172万
查看次数

_JAVA_OPTIONS JAVA_TOOL_OPTIONS和JAVA_OPTS之间的区别

我认为在_JAVA_OPTIONS和之间进行比较会很棒JAVA_TOOL_OPTIONS.我一直在寻找一个,但我找不到任何东西,所以我希望我们能在Stackoverflow上找到这方面的知识.

JAVA_OPTS包括完整性.它不是JVM的一部分,但在野外有很多问题.

我知道的:

到目前为止,我发现:

  • JAVA_OPTSJDK不使用它,而是由许多其他应用程序使用(请参阅此文章).
  • JAVA_TOOL_OPTIONS并且_JAVA_OPTIONS是将JVM参数指定为环境变量而不是命令行参数的方法.
    • 被至少javajavac
    • 他们有这个优先权:
      1. _JAVA_OPTIONS (覆盖其他人)
      2. 命令行参数
      3. JAVA_TOOL_OPTIONS (被其他人覆盖)

我想知道什么

  • 有没有官方文件比较JAVA_TOOL_OPTIONS_JAVA_OPTIONS
  • JAVA_TOOL_OPTIONS和之间是否存在任何其他差异_JAVA_OPTIONS(优先级除外).
  • 其中的可执行文件回暖JAVA_TOOL_OPTIONS_JAVA_OPTIONS(除了javajavac)
  • 什么可以被包含在任何限制JAVA_TOOL_OPTIONS_JAVA_OPTIONS

官方文件

我找不到任何关于的文档_JAVA_OPTIONS.该文件JAVA_TOOL_OPTIONS没有说明差异:

由于无法始终访问或修改命令行,例如在嵌入式VM中或仅在脚本内深入启动的VM,因此提供了JAVA_TOOL_OPTIONS变量,以便在这些情况下可以启动代理.
...

示例脚本

这是我用来解决这个问题的代码.控制台输出包含在注释中:

export JAVA_OPTS=foobar
export JAVA_TOOL_OPTIONS= 
export _JAVA_OPTIONS="-Xmx512m -Xms64m"

java -version                          
# Picked up JAVA_TOOL_OPTIONS: 
# Picked up _JAVA_OPTIONS: -Xmx512m -Xms64m
# …
Run Code Online (Sandbox Code Playgroud)

java jvm jvm-arguments

120
推荐指数
3
解决办法
6万
查看次数

有关_JAVA_OPTIONS的信息

任何人都可以解释当_JAVA_OPTIONS环境变量定义时以及在Windows机器上启动应用程序时Java会做什么?

java

35
推荐指数
2
解决办法
6万
查看次数

如何在开始运行jar文件时设置-Xmx?

因为我们知道,我们可以设置-Xmx1024Mwindow->preferences->java->installed jres->edit->default vm arguments日食.但是当我将这个项目打包成一个可运行的jar文件时,如何设置-Xmx1024M运行jar的时间java -jar A.jar

非常感谢!

java jar

35
推荐指数
3
解决办法
6万
查看次数

为weka增加java中的堆大小

我正在尝试增加java中的堆大小,因为weka会不断崩溃.我使用了建议的行:

> java -Xmx500m -classpath
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

-classpath requires class path specification
Run Code Online (Sandbox Code Playgroud)

我不确定这意味着什么.有什么建议?

java memory jvm weka

19
推荐指数
5
解决办法
5万
查看次数

Java中的"大字典"实现

我正处于Java项目的中间,该项目将使用单词的"大字典"."字典"是指分配给字符串的某些数字(int).而'big'我的意思是一个100 MB的文件.我提出的第一个解决方案可能是最简单的.在初始化时,我读入整个文件并创建一个大的HashMap,稍后将用于查找字符串.

有没有一种有效的方法可以在初始化时无需读取整个文件?也许不是,但如果文件真的很大,那么按照可用RAM的顺序呢?所以基本上我正在寻找一种在存储在内存中的大型字典中有效查找内容的方法.

感谢到目前为止的答案,结果我意识到我可以在我的问题中更具体.您可能已经猜到应用程序与文本挖掘有关,特别是以稀疏向量的形式表示文本(尽管有些人有其他创造性的想法:)).因此,对于使用至关重要的是能够在字典中查找字符串,尽可能快地获取其密钥.只要字符串查找时间得到优化,"读取"字典文件或将其索引到数据库中的初始开销就不那么重要了.再说一次,我们假设字典大小很大,与可用RAM的大小相当.

java performance dictionary

6
推荐指数
1
解决办法
1861
查看次数

xmx和MaxRAM JVM参数之间有什么区别?

maxram的

根据计算机上的内存量。堆内存使用比例由命令行选项InitialRAMFraction和MaxRAMFraction控制。maxRAM的值取决于平台。

Xmx

-Xmxn指定内存分配池的最大大小(以字节为单位)。此值必须是大于2 MB的1024的倍数。追加字母k或K表示千字节,或者追加m或M表示兆字节。默认值为64MB。在Solaris 7和Solaris 8 SPARC平台上,此值的上限约为4000m,而在Solaris 2.6和x86平台上,该值的上限约为2000m(减去开销)。

据我了解,两者都定义了heap尺寸。没有?建议使用什么:XmxMaxRAM?如果我同时使用两个卵子?

java heap jvm heap-memory

5
推荐指数
1
解决办法
4877
查看次数

使用"javaw.exe"vs"java.exe"的堆大小使用情况

以下是该计划,

public class Dummy {

    public static void main(String[] args) throws Exception {
        final int LENGTH = Integer.MAX_VALUE / 8;
        Object[] values = new Object[LENGTH];
        int count = 0;
        for (int i = 0; i < Integer.MAX_VALUE; i++) {
            Object o = new Object();
            int hashCode = o.hashCode();
            if (hashCode > LENGTH)
                continue;
            if (values[hashCode] != null) {
                System.out.println("found after " + count + ": " + values[hashCode] + " same hashcode as " + o);
                System.out.println(values[hashCode] == o);
                System.exit(0); …
Run Code Online (Sandbox Code Playgroud)

java jvm memory-management heap-memory

3
推荐指数
1
解决办法
2359
查看次数

ArrayList 可以容纳多少个值?

我是 Java 新手,我想知道一个数组列表可以容纳多少个值。

我正在构建一个从数据库表中获取值的 android 项目(我正在使用 json 打印值并在 java 中调用文件),并将这些值记录在一个数组列表中。

如果我的表有 8000 条记录,arraylist 是否可以保存所有这些记录?

谢谢你。

java arraylist

3
推荐指数
1
解决办法
3465
查看次数

java数组中的内存不足错误

我在java中的一个方法中使用以下代码:

int []  byte_song = new int[8414449];
int []  int_song = new int[8414449 - 45];
Run Code Online (Sandbox Code Playgroud)

如果我只是写:

int []  byte_song = new int[8414449];
Run Code Online (Sandbox Code Playgroud)

它没有给我任何错误.但是,如果我写:

int []  byte_song = new int[8414449];
int []  int_song = new int[8414449 - 45];
Run Code Online (Sandbox Code Playgroud)

它给了我OutOfMemoryError.

System.gc();int []int_song = new int[8414449 - 45];我得到错误之前我也尝试过调用.有人可以帮我解决这个问题.

java

-1
推荐指数
1
解决办法
895
查看次数