相关疑难解决方法(0)

如何确定默认的Java堆大小?

如果我从Java命令行中省略-Xmxn选项,则使用默认值.根据Java文档 "默认值是在运行时根据系统配置选择的".

哪些系统配置设置会影响默认值?

java heap heap-memory

397
推荐指数
10
解决办法
31万
查看次数

Java选项-Xmx代表什么?

java -Xmx1024m filename

什么-Xmx意思?

java

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

转换为Dalvik格式失败:无法执行dex:Java堆空间

我已经在我的Android eclipse项目中添加了一个2.45mb的 jar文件,现在我继续得到"转换为Dalvik格式失败:无法执行dex:Java堆空间",无论我做什么.

我已经在线研究,并被告知更新我的eclipse.ini以增加我的Java VM堆积.我已经为eclipse.ini中的所有值完成了这个,我继续得到构建错误.

有任何想法吗?

java eclipse android

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

Intellij IDEA中的Maven导入在大型项目中耗尽内存

Maven项目的导入以

Exception java.lang.OutOfMemoryError: GC overhead limit exceeded
Run Code Online (Sandbox Code Playgroud)
  1. 我试图定义一个环境变量:MAVEN_OPTS = -Xmx1g.
  2. 我试图-Xmx1g通过设置 - >构建工具 - > Maven - > Runner 添加到Maven VM选项.

没有成功.我还可以做些什么?

intellij-idea out-of-memory maven

28
推荐指数
2
解决办法
1万
查看次数

斯坦福nlp for python

我想做的就是找到任何给定字符串的情绪(正/负/中性).在研究中,我遇到了斯坦福NLP.但遗憾的是它在Java中.关于如何让它适用于python的任何想法?

python stanford-nlp sentiment-analysis

22
推荐指数
2
解决办法
3万
查看次数

java -Xmx1G是指10 ^ 9还是2 ^ 30个字节?

而在一般情况,是用于单位-Xmx,-Xms-Xmn选项("K","M"和"G",或不太标准的可能性"K","m"或"G")的二进制前缀倍数(即,功率1024),还是1000的力量?

手册说它们代表千字节(kB),兆字节(MB)和千兆字节(GB),表明它们是原始SI系统中定义的1000的幂.我的非正式测试(我不是很自信)表明他们真的是kibibytes(kiB),mebibytes(MiB)gibibytes(GiB),所有权力都是1024.

哪个是对的?例如,什么Java代码会显示当前大小?

使用1024的倍数对于RAM大小来说并不奇怪,因为RAM通常通过加倍硬件模块来物理布局.但是,随着我们获得越来越大的权力,以明确和标准的方式使用单位变得越来越重要,因为混乱的可能性会增加.单位"t"也被我的JVM接受,1 TiB比1 TB大10%.

注意:如果这些确实是二进制倍数,我建议更新文档和用户界面以非常清楚,例如" 附加字母k或K表示kibibytes(1024字节)"或m或M表示mebibytes( 1048576字节) ".这就是采用的方法,例如在Ubuntu:UnitsPolicy - Ubuntu Wiki中.

注意:有关选项用途的更多信息,请参阅例如java - 启动JVM时Xms和Xmx参数是什么?.

java units-of-measurement

15
推荐指数
2
解决办法
7957
查看次数

Java 32bit Xmx vs java 64bit Xmx

我真的很困惑.

Xmx根据java文档,是允许的最大堆大小.
Xms是所需的最小Java堆大小,并在JVM启动时分配.

在32位JVM(4GB内存)上,java -Xmx1536M HelloWorld给出了一个无法分配足够内存错误的内容.
在64位JVM(4GB Ram)上,java -Xmx20G HelloWorld工作正常.但我甚至没有分配那么多的虚拟或物理内存.

因此,我得出结论,Java 32位在JVM启动时分配1536M,但Java 64位不是.

为什么?一个简单的Hello World不需要运行1536M.我只是指定1536M是最大值,而不是它需要的.

有人解释吗?

java memory jvm

14
推荐指数
2
解决办法
3万
查看次数

OutOfMemoryError:IntelliJ中的内存不足?

当我在IntelliJ中以调试模式运行我的项目时,我收到以下错误.

有谁知道原因是什么? 在此输入图像描述

我已经增加了我的堆大小idea.vmoptions:

-ea
-server
-Xms1g
-Xmx3G
-Xss16m
-Xverify:none
-XX:PermSize=512m
-XX:MaxPermSize=1024m
Run Code Online (Sandbox Code Playgroud)

我已经将编译器的堆大小增加到1024,如下所示: 在此输入图像描述

java intellij-idea out-of-memory intellij-13

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

-Xmx是一个硬限制?

这个SO答案澄清了有关-XmxJVM标志的一些事情.试着尝试我做了以下事情:

import java.util.List;
import java.util.ArrayList;

public class FooMain {

    private static String memoryMsg() {
        return String.format("%s. %s. %s"
                             , String.format("total memory is: [%d]",Runtime.getRuntime().totalMemory())
                             , String.format("free memory is: [%d]",Runtime.getRuntime().freeMemory())
                             , String.format("max memory is: [%d]",Runtime.getRuntime().maxMemory()));
    }

    public static void main(String args[]) {
        String msg = null;
        try {
            System.out.println(memoryMsg());
            List<Object> xs = new ArrayList<>();
            int i = 0 ;
            while (true) {
                xs.add(new byte[1000]);
                msg = String.format("%d 1k arrays added.\n%s.\n"
                                    ,  ++i
                                    , memoryMsg());
            }
        } finally { …
Run Code Online (Sandbox Code Playgroud)

java java-7

8
推荐指数
2
解决办法
1943
查看次数

如何在使用递归逐步执行大型目录结构时管理Java内存

我有一个递归方法,遍历包含数千个音乐文件的大型目录.每次扩展符合条件时,它都会将音乐文件添加到observableList <>.在递归方法执行之前,该列表被挂接到另一个线程中的TableView <>,以便用户可以实时查看正在添加到TableView <>的文件.

问题是我对如何在java中管理内存知之甚少,并认为我可能会妨碍垃圾收集.在大约3,000首歌曲之后,递归方法会占用近6 GB的内存,然后开始忽略它应该能够读取的文件.此外,在"完成"逐步通过目录结构之后,ram不会减少,(即,递归方法的堆栈没有被破坏,我认为所引用的所有对象仍然在堆内存中).

它更进一步..我将播放列表导出到XML文件并关闭程序.当我重新启动它时,内存是完全合理的,所以我知道它不是包含文件的大型列表,它必须与递归方法有关.

这是位于音乐处理程序中的recusive方法:

 /**
 * method used to seek all mp3 files in a specified directory and save them
 * to an ObservableArrayList
 * 
 * @param existingSongs
 * @param directory
 * @return
 * @throws FileNotFoundException
 * @throws UnsupportedEncodingException
 */
protected ObservableList<FileBean> digSongs(ObservableList<FileBean> existingSongs,
        File directory) throws FileNotFoundException,
        UnsupportedEncodingException {
    /*
     * Each directory is broken into a list and passed back into the digSongs().
     */
    if (directory.isDirectory() && directory.canRead()) {

        File[] files = directory.listFiles();
        for …
Run Code Online (Sandbox Code Playgroud)

java memory recursion javafx heap-memory

7
推荐指数
1
解决办法
251
查看次数