큰 개체를 아래 코드를 사용하여 json 형식으로 문자열로 변환하려고하면 메모리 예외가 발생합니다 .1GB의 힙 크기를 사용하고 있습니다.GSON : Java 메모리 부족 오류 힙 공간
gson.toJson(this);
우리는 어떻게 힙 크기를 증가시키지 않고이 오류를 제거하기 위해 GSON 스트리밍 API (https://sites.google.com/site/gson/streaming)를 사용할 수 있습니까?
Caused by: java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2367)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:415)
at java.lang.StringBuffer.append(StringBuffer.java:237)
at java.io.StringWriter.write(StringWriter.java:112)
at com.google.gson.stream.JsonWriter.string(JsonWriter.java:576)
at com.google.gson.stream.JsonWriter.writeDeferredName(JsonWriter.java:402)
at com.google.gson.stream.JsonWriter.value(JsonWriter.java:417)
at com.google.gson.internal.bind.TypeAdapters$16.write(TypeAdapters.java:426)
at com.google.gson.internal.bind.TypeAdapters$16.write(TypeAdapters.java:410)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:208)
at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:145)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:97)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.write(CollectionTypeAdapterFactory.java:61)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:68)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:112)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:239)
at com.google.gson.Gson.toJson(Gson.java:661)
at com.google.gson.Gson.toJson(Gson.java:640)
at com.google.gson.Gson.toJson(Gson.java:595)
at com.google.gson.Gson.toJson(Gson.java:575)
어떻게 당신에 대해 개체 얘기입니다 비스
에도 GSON 스트리밍을 지원? 객체의 메모리 풋 프린트가 1G에 가까우면 다른 직렬화 방식으로는 해결할 수 없습니다. – f1sh
개체에는 몇 가지 속성이 있고 arraylist에는 104219 개의 레코드가 있으며 각 레코드에는 5 개의 속성이 있습니다. – Coded9
@Ashok 결과를 단일 큰 json으로 사용 하시겠습니까? 최근에 ~ 50GB의 데이터를 json 파일로 변환했지만 데이터를 여러 파일로 분할했습니다. 각 파일은 단지 몇 MB였습니다. – appl3r