当前位置: 首页 > 知识库问答 >
问题:

在将大量文件数据写入xml时减少内存(RAM)消耗的有效方法

司寇旺
2023-03-14
<doc>
    <items1>
        <itemA>..</itemA>
        ..
    </items1>

    <items2>
        <itemB>..</itemB>
        ..
    </items2>

    <items3>
        <itemC>..</itemC>
        ..
    </items3>
    .
    .
    .
    <items7>
        <itemG>..</itemG>
        ..
    </items7>
</doc>  
List<ItemA> items1 = new List<>(); // 1GB-5GB
List<ItemB> items2 = new List<>(); // 1GB-5GB
List<ItemC> items3 = new List<>(); // 1GB-5GB
List<ItemD> items4 = new List<>(); // 1GB-5GB
List<ItemE> items5 = new List<>(); // 1GB-5GB
List<ItemF> items6 = new List<>(); // 1GB-5GB
List<ItemG> items7 = new List<>(); // 1GB-5GB
JAXBContext.newInstance("ta").createMarshaller().marshal(new ObjectFactory().createCatalogue(catalogue), new FileOutputStream(fileName));

我们希望单独写每个列表,也以前写的文件不应该加载到堆,而写下一个列表。

共有1个答案

岳硕
2023-03-14

什么是块(维基百科):

块是信息的一个片段。

您正在寻找的是一种分块算法,它将允许您将无法放在RAM上的大量数据分解成更小的块。我建议您使用FastCDC算法作为分块算法。

 类似资料:
  • 问题内容: 我一直在为OpenGL练习编写Minecraft副本(据我估计很多),但是在编写了基本的渲染API之后,我注意到真正的Minecraft 占用了 大量 内存或内存- 大约800MB!我完全可以理解为什么它必须记住所有的块,以及生成器的小怪和地形数据……我问自己:“此块与该块完全相同。它们可以在代码中吗? ” 并记得C ++有指针,所以我试图用我能想到的唯一方法在Java中做同样的事情,

  • 问题内容: 我将Selenium和Firefox Webdriver与python配合使用,以从网站中抓取数据。 但是在代码中,我需要访问该网站超过10k次,并且这样做要消耗大量RAM。 通常,当脚本访问该站点2500次时,它已经消耗了4GB或更多的RAM,并且停止工作。 是否可以在不关闭浏览器会话的情况下减少内存RAM的消耗? 我问这是因为,当我启动脚本时,需要手动登录该站点(两因素加成,下面未

  • 似乎是正在消耗大量内存,即使在应该释放任何资源之后也是如此。简单的演示 产出: 如果替换部分, 使用率大幅下降: 我在这里误解了什么/做错了什么?正在加载的文件很大(~60MB),但即使XNode需要使用那么多内存,也不应该在时间?

  • 本文向大家介绍详解如何减少python内存的消耗,包括了详解如何减少python内存的消耗的使用技巧和注意事项,需要的朋友参考一下 Python 打算删除大量涉及像C和C++语言那样的复杂内存管理。当对象离开范围,就会被自动垃圾收集器回收。然而,对于由 Python 开发的大型且长期运行的系统来说,内存管理是不容小觑的事情。 在这篇博客中,我将会分享关于减少 Python 内存消耗的方法和分析导致

  • 现在,我需要使用Windows窗体图表以实时速度绘制数据。它将是完美的750个样本绘制在图表内的速度约为30 fps。我遇到的问题在于以一种快速的方式减少数据库而又不损失图的可靠性的算法。 我的想法(数据在值=127附近振荡): > 只需选择每(20万/750)个点即可选择750点 最后一个问题:考虑到我收集的数据总是相同的缓冲区(设备只是不断地用新数据覆盖这个缓冲区),我是否应该考虑使用指向我庞

  • 我正在将一个10GB的文件加载到内存中,我发现即使去掉任何额外的开销,只将数据存储在一个阵列中,它仍然需要占用53 GB的ram。这对我来说似乎太疯狂了,因为我正在将一些文本数据转换为long,而long占用更少的空间,将其余的转换为char*,char*应该占用与文本文件相同的空间。我试图加载的文件中有大约1.5亿行数据。当我按照下面的方式加载时,有什么原因会占用这么多内存吗? 这里有三个文件,