我已经将 Jerkson 用于 scala,将我的对象列表序列化为 JSON 文件。我能够将对象分解为 JSON 格式对象并写入文件。现在,当我想将它读入我的程序以进行进一步处理时,我得到了这个错误。仅供参考,我的文件大小是 500MB,将来可能会增长到 1GB。
我看到很少有论坛要求增加XX:MaxPermSize=256M。我不确定这是否能解决我的问题,即使现在可以解决,但当我的 JSON 文件的大小增长到 1GB 时,有什么保证以后不会出现这种情况。有更好的选择吗?谢谢!
Exception in thread "main" java.lang.OutOfMemoryError: PermGen space
at java.lang.String.intern(Native Method)
at org.codehaus.jackson.util.InternCache.intern(InternCache.java:41)
at org.codehaus.jackson.sym.CharsToNameCanonicalizer.findSymbol(CharsToNameCanonicalizer.java:506)
at org.codehaus.jackson.impl.ReaderBasedParser._parseFieldName(ReaderBasedParser.java:997)
at org.codehaus.jackson.impl.ReaderBasedParser.nextToken(ReaderBasedParser.java:418)
at com.codahale.jerkson.deser.ImmutableMapDeserializer.deserialize(ImmutableMapDeserializer.scala:32)
at com.codahale.jerkson.deser.ImmutableMapDeserializer.deserialize(ImmutableMapDeserializer.scala:11)
at org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2704)
at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1315)
at com.codahale.jerkson.Parser$class.parse(Parser.scala:83)
at com.codahale.jerkson.Json$.parse(Json.scala:6)
at com.codahale.jerkson.Parser$class.parse(Parser.scala:14)
at com.codahale.jerkson.Json$.parse(Json.scala:6)