您需要在statup上为JVM分配更多的内存。当您的资源太少时,该过程将花费太多时间执行垃圾收集,最终将失败。
例如,通过以下方式启动具有4 GB内存的JVM:
java -Xms4G -XmxG
如果您在Eclipse之类的IDE中,则可以更改运行配置,以便该应用程序也具有更多的内存。
除此之外,唯一让我惊讶的变化是,对于实际的加载操作,您正在使用内存模型,而实际上可以使用TDB支持的模型。这可以帮助减轻您的内存问题,因为TDB动态地将其索引移动到磁盘。
更改:
Dataset dataset = TDBFactory.createDataset(directory);Model model = ModelFactory.createDefaultModel();TDBLoader.loadModel(model, file );dataset.addNamedModel("http://nameFile", model);对此:
Dataset dataset = TDBFactory.createDataset(directory);Model model = dataset.getNamedModel("http://nameFile");TDBLoader.loadModel(model, file );现在,您的系统取决于TDB对何时将数据保留在内存中以及何时将其刷新到磁盘上做出正确决策的能力。



