41
37
import annis.service.ifaces.AnnisAttribute;
42
38
import annis.service.objects.AnnisCorpus;
43
39
import annis.service.objects.AnnisAttributeSetImpl;
40
import annis.sqlgen.AnnotateQueryData;
44
41
import annis.sqlgen.AnnotateSqlGenerator;
45
import annis.sqlgen.AnnotateSqlGenerator.AnnotateQueryData;
42
import annis.sqlgen.LimitOffsetQueryData;
46
43
import annis.sqlgen.SqlGenerator;
47
44
import annis.utils.Utils;
48
45
import au.com.bytecode.opencsv.CSVWriter;
417
CSVWriter csv = new CSVWriter(new FileWriter(new File("annis_benchmark_result.csv")));
419
String[] header = new String[] {"corpora", "query", "avg", "diff-best", "diff-worst"};
414
CSVWriter csv = new CSVWriter(new FileWriter(new File(
415
"annis_benchmark_result.csv")));
417
String[] header = new String[]
419
"corpora", "query", "avg", "diff-best", "diff-worst"
420
421
csv.writeNext(header);
421
422
for (AnnisRunner.Benchmark benchmark : benchmarks)
423
String[] line = new String[5];
424
String[] line = new String[5];
424
425
line[0] = StringUtils.join(benchmark.queryData.getCorpusList(), ",");
425
426
line[1] = benchmark.functionCall;
426
line[2] = "" + benchmark.avgTimeInMilliseconds;
427
line[3] = "" + Math.abs(benchmark.bestTimeInMilliseconds - benchmark.avgTimeInMilliseconds);
428
line[4] = "" + Math.abs(benchmark.avgTimeInMilliseconds - benchmark.worstTimeInMilliseconds);
427
line[2] = "" + benchmark.avgTimeInMilliseconds;
428
line[3] = "" + Math.abs(benchmark.bestTimeInMilliseconds
429
- benchmark.avgTimeInMilliseconds);
430
line[4] = "" + Math.abs(benchmark.avgTimeInMilliseconds
431
- benchmark.worstTimeInMilliseconds);
429
432
csv.writeNext(line);
435
438
catch (IOException ex)
437
440
java.util.logging.Logger.getLogger(AnnisRunner.class.getName()).
438
441
log(Level.SEVERE, null, ex);
443
446
public String benchmarkOptions(QueryData queryData)
642
645
doSet("?" + setting);
646
648
private QueryData analyzeQuery(String annisQuery, String queryFunction)
648
650
QueryData queryData = annisDao.parseAQL(annisQuery, corpusList);
649
651
queryData.setCorpusConfiguration(annisDao.getCorpusConfiguration());
650
queryData.addExtension(new AnnotateQueryData(offset, limit, left, right));
652
653
// filter by meta data
653
654
queryData.setDocuments(metaDataFilter.getDocumentsForMetadata(queryData));
657
queryData.addExtension(new LimitOffsetQueryData(offset, limit));
658
queryData.addExtension(new AnnotateQueryData(left, right));
655
660
if (annisQuery != null)
657
662
benchmarks.add(new AnnisRunner.Benchmark(queryFunction + " " + annisQuery,
774
779
Validate.isTrue(splitted.length > 1,
775
780
"must have to arguments (toplevel corpus name and document name");
776
System.out.println(annotateSqlGenerator.getDocumentQuery(splitted[0], splitted[1]));
781
System.out.println(annotateSqlGenerator.getDocumentQuery(splitted[0],
779
785
public void doDoc(String docCall)
781
787
String[] splitted = docCall.split("( )+");