約 100 の SPARQL クエリの結果をチェックする JUnit テストを書いています。
for(String query: queries)
{
QueryEngineHTTP qe = new QueryEngineHTTP(endpoint, query);
ResultSet rs = qe.execSelect();
while(rs.hasNext()) {...}
}
パフォーマンスを最適化するために、いくつかのクエリを実行したいのですが、すべてを一度に並列に実行するわけではありません。Jena やその他のライブラリにこのためのメカニズムはありますか? スレッド プールを使用することもできますが、最適化されたソリューションの方が優れていると思います。
- オーバーヘッドを最小限に抑える
- そのようなプロトコルが存在する場合に備えて、すべてのクエリを一度にサーバーに渡すことで遅延を最小限に抑えます
- エンドポイントあたりの同時クエリの最大量を指定します。これにより、DBpedia に 50 個のクエリ、LinkedGeoData に 50 個のクエリがある場合、一度に 5 個ずつ実行されます。
- クエリの実行時間を概算して、より高速なクエリを最初に開始できるようにする
- SPARQL エンドポイント キャッシュに最適なクエリ順序を決定する