Skip to content

Instantly share code, notes, and snippets.

@mhgrove
Created November 12, 2012 19:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mhgrove/4061183 to your computer and use it in GitHub Desktop.
Save mhgrove/4061183 to your computer and use it in GitHub Desktop.
Sesame SPARQL parser perf regression
package test;
import org.apache.commons.math.stat.descriptive.SummaryStatistics;
import org.openrdf.query.parser.sparql.SPARQLParser;
public class ParseTest {
public static void main(String[] args) throws Exception {
final String q = "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\n" +
"PREFIX rev: <http://purl.org/stuff/rev#>\n" +
"PREFIX foaf: <http://xmlns.com/foaf/0.1/>\n" +
"PREFIX bsbm: <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/>\n" +
"PREFIX bsbm-export: <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/vocabulary/export/>\n" +
"PREFIX dc: <http://purl.org/dc/elements/1.1/>\n" +
"\n" +
"CONSTRUCT { <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromVendor29/Offer54835> bsbm-export:product ?productURI .\n" +
" <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromVendor29/Offer54835> bsbm-export:productlabel ?productlabel .\n" +
" <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromVendor29/Offer54835> bsbm-export:vendor ?vendorname .\n" +
" <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromVendor29/Offer54835> bsbm-export:vendorhomepage ?vendorhomepage .\n" +
" <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromVendor29/Offer54835> bsbm-export:offerURL ?offerURL .\n" +
" <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromVendor29/Offer54835> bsbm-export:price ?price .\n" +
" <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromVendor29/Offer54835> bsbm-export:deliveryDays ?deliveryDays .\n" +
" <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromVendor29/Offer54835> bsbm-export:validuntil ?validTo }\n" +
"WHERE { <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromVendor29/Offer54835> bsbm:product ?productURI .\n" +
" ?productURI rdfs:label ?productlabel .\n" +
" <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromVendor29/Offer54835> bsbm:vendor ?vendorURI .\n" +
" ?vendorURI rdfs:label ?vendorname .\n" +
" ?vendorURI foaf:homepage ?vendorhomepage .\n" +
" <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromVendor29/Offer54835> bsbm:offerWebpage ?offerURL .\n" +
" <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromVendor29/Offer54835> bsbm:price ?price .\n" +
" <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromVendor29/Offer54835> bsbm:deliveryDays ?deliveryDays .\n" +
" <http://www4.wiwiss.fu-berlin.de/bizer/bsbm/v01/instances/dataFromVendor29/Offer54835> bsbm:validTo ?validTo }\n";
SummaryStatistics stats = new SummaryStatistics();
SPARQLParser parser = new SPARQLParser();
String base = "http://example.org";
for (int i = 0; i < 100; i++) {
parser.parseQuery(q, base);
}
for (int i = 0; i < 75000; i++) {
long s = System.nanoTime();
parser.parseQuery(q, base);
stats.addValue(System.nanoTime() - s);
}
System.err.println(stats);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment