DotnetRdf-ResultSetHandler将结果加载到内存中,而不是一个一个地流式处理或复制

DotnetRdf-ResultSetHandler将结果加载到内存中,而不是一个一个地流式处理或复制,rdf,sparql,dotnetrdf,Rdf,Sparql,Dotnetrdf,我正在使用DotnetRDF库连接到远程SPARQL端点并执行SPARQL查询 当前应用程序正在抛出内存不足错误;我查看了DotnetRDF代码,以找出这个问题的根本原因。这似乎是因为将所有结果集保存到内存中,而不是在HTTPWebResponse的流式/读取响应之后将其流式处理 在获得成功的HTTP响应后,部分解析(例如:SparqlCsvParser)将SparqlResult类型的所有结果添加到SparqlResultSet的列表中。这是否会导致内存不足错误 我想知道DotnetRDF中是

我正在使用DotnetRDF库连接到远程SPARQL端点并执行SPARQL查询

当前应用程序正在抛出内存不足错误;我查看了DotnetRDF代码,以找出这个问题的根本原因。这似乎是因为将所有结果集保存到内存中,而不是在HTTPWebResponse的流式/读取响应之后将其流式处理

在获得成功的HTTP响应后,部分解析(例如:SparqlCsvParser)将SparqlResult类型的所有结果添加到SparqlResultSet的列表中。这是否会导致内存不足错误


我想知道DotnetRDF中是否有任何方法可以一个接一个地延迟返回结果集,而不是将所有内容加载到内存中?

请参阅上的文档,其描述如下:

Handlers API是一个强大的API,允许流处理 RDF和SPARQL结果的比较。它几乎可以用于计算机的任何部分 使用RDF或SPARQL结果的API

您可以查看内置实现的API文档,也可以根据需要编写自己的API文档

请注意,不一定以惰性方式获取结果,它只允许您控制解析结果的处理方式。如果您需要以一种惰性的方式处理它们,那么您可以通过使用具有固定容量的阻塞队列来实现这一点,尽管您可能需要将解析推到后台线程上才能工作