Java 编组给出OutOfMemoryError的大型对象列表
我正在尝试封送一个大的对象列表~100万个,它在尝试以~20K个对象的数量在Arraylist中添加对象时发出OutOfMemoryError。我想要一个XML文件。我怎样才能做到这一点Java 编组给出OutOfMemoryError的大型对象列表,java,performance,memory-management,jaxb,Java,Performance,Memory Management,Jaxb,我正在尝试封送一个大的对象列表~100万个,它在尝试以~20K个对象的数量在Arraylist中添加对象时发出OutOfMemoryError。我想要一个XML文件。我怎样才能做到这一点 注意:我的JVM内存限制为512MB,您需要在加载项目时将其保存在xml文件中。很明显,您不能在集合中添加ArrayList很多项,但要保持较低的内存 在这种情况下,您需要使用类似于:XMLStreamWriter的东西在文件中写入XML。 避免使用在写入磁盘之前加载内存中所有内容的库。加载项目时,需要将项目保
注意:我的JVM内存限制为512MB,您需要在加载项目时将其保存在xml文件中。很明显,您不能在集合中添加ArrayList很多项,但要保持较低的内存 在这种情况下,您需要使用类似于:XMLStreamWriter的东西在文件中写入XML。
避免使用在写入磁盘之前加载内存中所有内容的库。加载项目时,需要将项目保存在xml文件中。很明显,您不能在集合中添加ArrayList很多项,但要保持较低的内存 在这种情况下,您需要使用类似于:XMLStreamWriter的东西在文件中写入XML。
避免使用在写入磁盘之前加载内存中所有内容的库。您需要了解,在64位机器中,每个指针需要8个字节。这就是为什么当您尝试加载一个大型集合时,您不仅仅是在加载数据,而是在为每个字段、对象模型的每个属性和集合的每个membver分配内存 您有三种选择:
- 分配更多内存李>
- 当你把所有的东西都放在内存中时,找到一个更紧凑的格式李>
- 第三是实现某种滚动,以便一次只加载集合的一部分
- 分配更多内存李>
- 当你把所有的东西都放在内存中时,找到一个更紧凑的格式李>
- 第三是实现某种滚动,以便一次只加载集合的一部分
- 您需要了解,在64位机器中,每个指针需要8个字节。这就是为什么当您尝试加载一个大型集合时,您不仅仅是在加载数据,而是在为每个字段、对象模型的每个属性和集合的每个membver分配内存
您有三种选择: