使用大型数据结构时,避免在Java(eclipse)中出现“内存不足错误”?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用大型数据结构时,避免在Java(eclipse)中出现“内存不足错误”?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1050字,纯文字阅读大概需要2分钟。
内容图文
好的,因此我正在编写一个程序,不幸的是,该程序需要使用巨大的数据结构来完成其工作,但是在初始化过程中,它由于“内存不足错误”而失败.尽管我完全理解这意味着什么以及它为什么会产生问题,但是我很难克服它,因为我的程序需要使用这种大结构,而且我不知道其他任何存储方法.
该程序首先索引我提供的大量文本文件.这很好.
然后,它使用该索引来初始化大型2D数组.该数组将具有n²个条目,其中“ n”是文本语料库中唯一单词的数量.对于相对较小的块,我正在测试n(大约60个文件),它需要输入大约30,000×30,000条目.一旦我也用我的全部预期语料来运行它,它可能会更大.
它在初始化数据结构(以后将要处理)时,每次在索引后始终会失败.
我所做的事情包括:
>修改代码以使用原始int []代替TreeMap
>消除多余的结构,等等.
>另外,我已经使用-Xmx2g运行了程序,以最大化分配的内存
我相当有信心,这不会成为简单的代码解决方案,但很有可能需要一种非常新颖的方法.我在寻找那种方法,有什么想法吗?
谢谢,
B.
解决方法:
听起来(对于您使用数组的目的做一些假设)大多数条目将为0.如果是,则可以考虑使用sparse matrix表示形式.
如果确实有那么多条目(即使假设没有开销,您当前的数组在over 3 gigabytes already处),那么您将必须使用某种磁盘存储或惰性加载/卸载系统.
内容总结
以上是互联网集市为您收集整理的使用大型数据结构时,避免在Java(eclipse)中出现“内存不足错误”?全部内容,希望文章能够帮你解决使用大型数据结构时,避免在Java(eclipse)中出现“内存不足错误”?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。