Java 中的内存映射集合

2024-03-04

我正在填满 JVM 堆空间。

更改参数以为 JVM 提供更多堆空间,或更改代码中算法中的某些内容以不使用这么多空间是最推荐的两个选项。

但是,如果这两个已经被尝试和应用,并且我仍然遇到内存不足的异常,我想看看其他选项是什么。

我发现了这个例子“对巨大的矩阵使用内存映射文件 http://vanillajava.blogspot.com/2011/12/using-memory-mapped-file-for-huge.html“和一个名为海量收藏 https://code.google.com/p/vanilla-java/wiki/HugeCollections这是解决我的问题的有趣方法。不幸的是,该库已经一年多没有看到更新了,而且它也不在任何 Maven 存储库中 - 所以对我来说它不是一个真正可靠的库。

我的问题是,是否有任何其他库可以做到这一点,或者实现它的好方法(具有集合对象(列表和集合)内存映射)?


您没有说明您正在使用哪种类型的集合,或者您使用它们的方式,因此很难给出建议。但是,请记住以下几点:

  • 将对象保留在 Java 堆上始终是最简单的选择,而且 RAM 相对便宜。
  • 盲目地移动到内存映射数据很可能会带来可怕的性能,特别是当您在文件中移动和/或进行大量更改时。基于哈希的集合类型是最差的,因为它们通过分发数据来工作。基于树的集合类型通常是更好的选择,而线性集合可以是双向的。
  • 一旦移出堆,您就需要一种方法来将对象转换为 Java 或从 Java 转换对象。对象序列化是最简单的,但会增加大量开销。通过字节缓冲区访问的二进制对象通常是更好的选择,但您需要具有线程意识。
  • 您还必须管理自己的堆外对象的垃圾收集。如果您所做的只是创建/更新,这不是问题,但如果您要删除,很快就会变得很痛苦。
  • 如果您有大量数据,并且需要以多种方式访问​​这些数据,那么数据库可能是您的最佳选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 中的内存映射集合 的相关文章

  • HTTP 状态 404 - 请求的资源不可用

    在使用 MyEclipse IDE 中的 Tomcat 服务器和 Struts 2 框架时 我遇到了反复出现的问题 我将我的程序作为服务器应用程序运行 当它运行时 默认的index jsp 文件将成功打开 但应用程序的其他过去都不起作用 当
  • 任务“:app:dexDebug”执行失败

    我目前正在处理我的项目 我决定将我的 Android Studio 更新到新版本 但在我导入项目后 它显示如下错误 Information Gradle tasks app assembleDebug app preBuild UP TO
  • 用 @DataJpaTest 注释的测试不是用 @Autowired 注释的自动装配字段

    我有一个 Spring Boot 应用程序 其中包含 Spring Data Jpa 存储库 我需要围绕这个存储库运行单元 或组件 测试 我对 Spring Data Jpa 没有太多经验 这是我的测试 这很简单 我无法让它通过 impor
  • 如何在 Eclipse 中用阿拉伯语读写

    我在 eclipse 中编写了这段代码来获取一些阿拉伯语单词 然后打印它们 public class getString public static void main String args throws Exception PrintS
  • 如何从另一个xml文件动态更新xml文件?

    我想从另一个 xml 文件更新 xml 文件 我使用了一个 xml 文件 如下所示 one xml
  • 使用 Checkstyle Plugin 时从插件调用代码时出现问题:“org.eclipse.jface”

    我正在尝试在 Rational Software Architect 7 0 0 4 上使用 eclipse cs 插件 我最近卸载了旧的 beta2 版本并安装了 beta3 插件本身按照之前的配置工作 但是每当我尝试通过 Windows
  • 使用 Spring 时实例化对象,用于测试与生产

    使用 Spring 时 应该使用 Spring 配置 xml 来实例化生产对象 并在测试时直接实例化对象 这样的理解是否正确 Eg MyMain java package org world hello import org springf
  • Java 泛型/类型调度问题

    考虑以下程序 import java util List import java util ArrayList public class TypeTest public static class TypeTestA extends Type
  • Java 重写 hashCode() 得到 StackOverflowError

    所以我不太熟悉重写 hashCode 并且我似乎在 hashCode 方法中以某种方式进行了一些无限递归 这是我的场景 我有一个 DuplicateCache 类 它是一个缓存对象 用于检查系统中的重复对象 我有一个静态内部类 Duplic
  • Java:从元素创建 DOM 元素,而不是文档

    如您所知 在 Java 中创建 Dom 元素的正确方法是执行以下操作 import org w3c dom Document import org w3c dom Element Document d Element e e d creat
  • JavaFX - setVisible 隐藏元素但不重新排列相邻节点

    在 JavaFX 中 如果我有一个场景有 2VBox元素和每个VBox有多个Label in it 如果我设置顶部VBox to 无形的 为什么底部VBox 不向上移动顶部的场景VBox was The VBox is 无形的但我希望其他物
  • 使用 Java 在浏览器中下载 CSV 文件

    我正在尝试在 Web 应用程序上添加一个按钮 单击该按钮会下载一个 CSV 文件 该文件很小 大小仅约 4KB 我已经制作了按钮并附加了一个侦听器 文件也准备好了 我现在唯一需要做的就是创建单击按钮时下载 csv 文件的实际事件 假设 fi
  • 如何将 XMP XML 块序列化为现有的 JPEG 图像?

    我有许多 JPEG 图像 其中包含损坏的 XMP XML 块 我可以轻松修复这些块 但我不确定如何将 固定 数据写回图像文件 我目前正在使用 JAVA 但我愿意接受任何能让这项任务变得容易的事情 这是目标关于 XMP XML 的另一个问题
  • 打印包含 JBIG2 图像的 PDF

    请推荐一些库 帮助我打印包含 JBIG2 编码图像的 PDF 文件 PDFRenderer PDFBox别帮我 这些库可以打印简单的 PDF 但不能打印包含 JBIG2 图像的 PDF PDFRenderer尝试修复它 根据 PDFRedn
  • tomcat 过滤所有 web 应用程序

    问题 我想对所有网络应用程序进行过滤 我创建了一个过滤器来监视对 apache tomcat 服务器的请求 举例来说 它称为 MyFilter 我在 netbeans 中创建了它 它创建了 2 个独立的目录 webpages contain
  • 从 html 页面和 javascript 调用 java webservice

    我正在尝试从 javascript 调用 java 实现的 Web 服务 使用 NetBeans IDE 我读过很多关于 jQuery 和 AJAX 的内容 但我似乎无法掌握它 假设我的 Web 服务 WSDL 位于 http localh
  • jmap - 组织和堆操作会给 jvm 带来开销吗?

    正如标题所述 需要多少开销jmap histo and jmap heap分别带到jvm 如果一个内存敏感的 Java 进程处于OutOfMemory 例如 大约 96 的堆已满 并且无法通过 full gc 清除 其中一项操作是否有可能将
  • ExceptionHandler 不适用于 Throwable

    我们的应用程序是基于 Spring MVC 的 REST 应用程序 我正在尝试使用 ExceptionHandler 注释来处理所有错误和异常 I have ExceptionHandler Throwable class public R
  • Java 编码风格、局部变量与重复方法调用

    我更喜欢使用局部变量而不是多次调用同一方法 I prefer this Vehicle vehicle person getVehicle if vehicle instanceof Car Car car Car vehicle car
  • Java中有类似分支/跳转表的东西吗?

    Java有类似分支表或跳转表的东西吗 分支表或跳转表是 根据维基百科 http en wikipedia org wiki Branch table 用于描述使用分支指令表将程序控制 分支 转移到程序的另一部分 或可能已动态加载的不同程序

随机推荐

  • 如何在 MiniTest 中存根?

    在我的测试中 我想为类的任何实例存根一个预设的响应 它可能看起来像这样 Book stubs title any instance returns War and Peace 然后每当我打电话时 book title它返回 战争与和平 有没
  • 如何更新TileOverlay而不闪烁?

    我有一些动态图块内容要显示在地图顶部 具体来说 天气图像 雷达 卫星 温度等 我正在使用适用于 Android v2 的 Google 地图 API 我遇到的问题是 显然更新图块图像的唯一方法 即当新数据到达时 或者当帧在延时动画中前进时
  • 使用 LoadLibrary 在 .pyd 中加载 cython cdef 函数时出现问题

    我正在尝试在 C 中动态加载 cythonized pyd 在 Linux 机器中创建一个 so 文件 使用 so 我可以执行以下操作 plugin dlopen foo so RTLD LAZY init dlsym plugin PyI
  • 调试 Jersey 解组错误 - 错误请求语法不正确

    我正在 Glassfish 上的 Jersey 的帮助下构建 REST Web 服务 现在我正在为我的搜索查询的自定义输入源而苦苦挣扎 如果有搜索方法 POST Path search Consumes application xml ap
  • HSTS 预加载列表 - www 网站可能存在 SEO 问题

    让我在这里解释一下现实世界的情况 我运行网站https www liloo ro https www liloo ro我想为其启用 HSTS HSTS 预加载 问题是为了将其提交给预加载列表 https hstspreload org th
  • 无法制作固定大小数组的向量?

    我有这个奇怪的问题 vector
  • 更改 igraph 图中子图的颜色

    我有以下代码来绘制图的最小生成树 g is an igraph graph mst minimum spanning tree g E g color lt SkyBlue2 how to I make mst a different co
  • 无法访问用户控制组件[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 在我的用户控件中 我有一个名为的 datagridviewdgvCustomers 我想在 gridview 中加载客户
  • 延长 R 中绘图轴的长度?

    如何在 R 中扩展轴线以覆盖数据范围 例如 在 我的数据大约为 2100 我希望 x 轴的线能走那么远 但不要在 2100 处做刻度线或标签 这在 R 中是否可能 这是用于制作上述绘图的代码 hist x breaks 50 xlab ma
  • 对python的LOAD_FAST/STORE_FAST感到困惑

    当我写一些代码时 我发现一个有趣的事情 def test l for i in range 10 def f pass print f l append f test import dis dis dis test 输出是
  • 如何从 pandas 邻接矩阵数据帧创建有向 networkx 图?

    我有一个以下形式的 pandas 数据框 df A B C D A 0 0 5 0 5 0 B 1 0 0 0 C 0 8 0 0 0 2 D 0 0 1 0 我正在尝试由此创建一个 networkx 图 我尝试过以下代码变体 A G ne
  • “cordova 平台添加 android”shasum 错误

    我正在完成设置和 HelloWorld 示例http cordova apache org docs en 3 5 0 guide cli index md html The 20Command Line 20Interface http
  • 当我导入 Xerces 库时无法构建应用程序(退出值 1)

    当我导入 Xerces 库时 我似乎无法构建我的应用程序 由于之前的问题 我已经在使用 multidex 因此我知道这一切都设置正确 我花了几天时间在网上查找并尝试各种版本的 Xerces 并对我的 build gradle 进行调整 但无
  • CSS open-quote 显示 1 个引号

    我使用以下 CSS 在段落前添加左引号 blockquote padding 22px quotes 201C 201D 2018 2019 font size 15px blockquote before color 111 conten
  • Postgres:整数范围的唯一约束

    给定两个整数 开始和结束 以及一个外键 我如何定义一个unique对区间 start end 和foreign key 的约束 鉴于我的表中有以下条目 start end foreign key 10 20 04ef8258 917c 46
  • Java中如何获取字符类型的类别名称?

    The Character getType int codePoint 返回一个整数 但我找不到方法 从中获取 unicode 类别名称 例如 Lu 或 Cn 我想要的是一种方法 例如Character getCategoryTypeNam
  • scala 中的构造函数(主/辅助/默认主)

    一个非常简单的练习凯霍斯特曼的 book Scala 适合不耐烦的人 一直让我困惑 是关于primary auxiliary and default primary构造函数 例如 5 10 考虑班级 class Employee val n
  • 不会采用父级
  • 我有一个 ul 与几个 li 其中的所有项目都在一行中 这 li li 有一个嵌套的 span and an img The img 所有项目的高度都相同 但是 span 项目包含可以跨越单行或两行的文本 取决于文本 我尝试过申请displ
  • ParseException:无效的会话令牌错误

    我做了一个简单的注册用户界面只是为了检查解析 但由于某种原因每次我尝试注册用户时都会出现此错误 这是代码 final ProgressDialog dlg new ProgressDialog this dlg setTitle Pleas
  • Java 中的内存映射集合

    我正在填满 JVM 堆空间 更改参数以为 JVM 提供更多堆空间 或更改代码中算法中的某些内容以不使用这么多空间是最推荐的两个选项 但是 如果这两个已经被尝试和应用 并且我仍然遇到内存不足的异常 我想看看其他选项是什么 我发现了这个例子 对