Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 由于GC开销,Jena节俭_Java_Garbage Collection_Jena_Thrift - Fatal编程技术网

Java 由于GC开销,Jena节俭

Java 由于GC开销,Jena节俭,java,garbage-collection,jena,thrift,Java,Garbage Collection,Jena,Thrift,在我的程序中,我通过Thrift和RDFDataMgr对Jena(2.13.0)数据集图进行了大量序列化和反序列化,但在某一点上,我遇到了OutOfMemory异常。有人能帮我找到这个问题吗 OutOfMemoryError: GC overhead limit exceeded at java.io.BufferedOutputStream.<init>(BufferedOutputStream.java:76) at org.apache.jena.riot.thrift

在我的程序中,我通过Thrift和RDFDataMgr对Jena(2.13.0)数据集图进行了大量序列化和反序列化,但在某一点上,我遇到了OutOfMemory异常。有人能帮我找到这个问题吗

OutOfMemoryError: GC overhead limit exceeded
at java.io.BufferedOutputStream.<init>(BufferedOutputStream.java:76)
    at org.apache.jena.riot.thrift.TRDF.protocol(TRDF.java:72)
    at org.apache.jena.riot.thrift.StreamRDF2Thrift.<init>(StreamRDF2Thrift.java:55)
    at org.apache.jena.riot.thrift.BinRDF.streamToOutputStream(BinRDF.java:103)
    at org.apache.jena.riot.thrift.WriterDatasetThrift.write(WriterDatasetThrift.java:53)
    at org.apache.jena.riot.RDFDataMgr.write$(RDFDataMgr.java:1331)
    at org.apache.jena.riot.RDFDataMgr.write(RDFDataMgr.java:1205)
    at org.apache.jena.riot.RDFDataMgr.write(RDFDataMgr.java:1195)

实际上,我正在使用Spark和Flink来运行复杂的mapreduce作业,并使用DatasetGraph的精简序列化来序列化许多组四边形。我使用最多的方法是:

public static void ser(DatasetGraph dsg, byte[] b, Lang l) {
    InputStream is = new ByteArrayInputStream(b);
    RDFDataMgr.read(dsg, is, l);
    closeStream(is);
    dsg.close();
}


你检查了这些链接和这个链接了吗?是的,我将-Xmx从6增加到了10,并向VM添加了GC选项,但问题仍然存在。在序列化较少的情况下,在数据量相同的情况下,一切都正常工作您正在读取和序列化的RDF结构有多大?您使用的是哪种收集器?如果看不到显示问题的实际代码的最小示例,任何人都不可能给出真正的答案。目前的问题所能得到的只是指向调优JVM参数的指针(正如您已经得到的),而您已经声明在您的用例中并没有真正的帮助。
public static void ser(DatasetGraph dsg, byte[] b, Lang l) {
    InputStream is = new ByteArrayInputStream(b);
    RDFDataMgr.read(dsg, is, l);
    closeStream(is);
    dsg.close();
}
public static DatasetGraph deser(byte[] b, Lang l) {
    DatasetGraph ret = DatasetGraphFactory.createMem();
    InputStream is = new ByteArrayInputStream(b);
    RDFDataMgr.read(ret, is, l);
    closeStream(is);
    return ret;
}