Tag: 不存在

如何处理大字符串和有限的内存

我有一个文件,我从中读取数据。 此文件中的所有文本都存储在String变量(一个非常大的变量)中。 然后在我的应用程序的另一部分,我想要遍历此字符串并逐步提取有用的信息(解析字符串)。 与此同时,我的内存已满,OutOfMemoryexception使我无法进一步处理。 我认为在从文件中读取输入流时直接处理数据会更好。 但是对于组织目标,我想将String传递给我的应用程序中的另一部分。 我该怎么做才能防止内存溢出?

使用大型数据结构时,避免Java(eclipse)中出现“内存不足错误”?

好吧,所以我正在编写一个程序,不幸的是需要使用庞大的数据结构来完成它的工作,但它在初始化期间失败了“内存不足错误”。 虽然我完全理解这意味着什么以及为什么它是一个问题,但我无法克服它,因为我的程序需要使用这个大型结构,我不知道任何其他方式来存储它。 该程序首先索引我提供的大量文本文件。 这很好用。 然后它使用此索引初始化大型2D数组。 该数组将具有n²个条目,其中“n”是文本语料库中唯一字的数量。 对于我正在测试的相对较小的块(大约60个文件),它需要制作大约30,000×30,000个条目。 一旦我在我的完整预期语料库上运行它,这可能会更大。 它在索引之后每次都会失败,同时它正在初始化数据结构(稍后要处理)。 我做的事情包括: 修改我的代码以使用原始int[]而不是TreeMap 消除冗余结构等… 另外,我用-Xmx2g运行程序以-Xmx2g我分配的内存 我相信这不是一个简单的代码解决方案,但很可能需要一种非常新的方法。 我正在寻找那种方法,任何想法? 谢谢,B。