# Benchmark results

This document describes the benchmark results.

## Software used
 * Apache Jena 3.2.0
 * Apache Tomcat 9.0.0.M19 64bit Windows distribution
 * Jersey 2.25.1
 * Windows 10

## Hardware used

The tests were performed on two hardware configurations:

### Configuration A
* Desktop PC
* 5 years old 
* AMD Athlon II X4 641 Quad-Core 2.8GHz (PassMark CPU result: 983/3399)
* 4 GB RAM
* HDD

### Configuration B
* Laptop PC
* <1 year old 
* Intel COre i5-6200U 2.4GHz/2.8GHz Turbo (PassMark CPU result: 1494/3951)
* 8 GB RAM
* SSD


## Data sets

Two data sets were used during the benchmarking:

### Data set A
over 82000 triples

No of individuals:
sbim:EnergyMeter 25
sbim:Site 5
sbim:HumiditySensor 750
sbms:Input 2300
sbms:Observation 3050
sbim:TemperatureSensor 750
sbim:MovementSensor 750
sbms:ObservedProperty 3050
sbms:StatelessDirectSensing 3000
sbim:Building 25
sbim:ProgrammableController 775
sbms:UserDefined 750
sbms:Trend 6100
sbms:AggregateSumSensing 50
sbim:Room 750
sbim:Floor 75

No of property assertions:
sbim:hasRoom 750
sbms:hasBMSId 9150
sbms:observedProperty 3050
sbms:featureOfInterest 3050
sbim:hasBIMId 3905
sbim:isInstallationLocationOfDevice 3050
sbms:hasAggregationTimeWindow 50
sbim:isFloorOf 75
sbms:expressesObservation 3050
sbms:isPropertyOf 3050
sbim:isRoomOf 750
sbim:hasBuilding 25
sbms:publishedByDevice 3050
sbms:hasPropertyDomain 3050
rdfs:label 6100
sbim:hasInstallationInRoom 3050
rdf:22205
sbms:trends 6100
sbms:observedBy 3050
sbim:isBuildingOf 25
sbms:hasPhysicalQuality 3050
sbim:hasFloor 75
sbms:sensingMethodUsed 3050

### Data set B

over 1 000 000 triples

No of individuals:
sbim:EnergyMeter 100
sbim:Site 10
sbim:HumiditySensor 10000
sbms:Input 30200
sbms:Observation 40200
sbim:TemperatureSensor 10000
sbim:MovementSensor 10000
sbms:ObservedProperty 40200
sbms:StatelessDirectSensing 40000
sbim:Building 100
sbim:ProgrammableController 10100
sbms:UserDefined 10000
sbms:Trend 80400
sbms:AggregateSumSensing 200
sbim:Room 10000
sbim:Floor 500

No of property assertions:
sbim:hasRoom 10000
sbms:hasBMSId 120600
sbms:observedProperty 40200
sbms:featureOfInterest 40200
sbim:hasBIMId 50810
sbim:isInstallationLocationOfDevice 40200
sbms:hasAggregationTimeWindow 200
sbim:isFloorOf 500
sbms:expressesObservation 40200
sbms:isPropertyOf 40200
sbim:isRoomOf 10000
sbim:hasBuilding 100
sbms:publishedByDevice 40200
sbms:hasPropertyDomain 40200
rdfs:label 80400
sbim:hasInstallationInRoom 40200
rdf:type 292010
sbms:trends 80400
sbms:observedBy 40200
sbim:isBuildingOf 100
sbms:hasPhysicalQuality 40200
sbim:hasFloor 500
sbms:sensingMethodUsed 40200




## Test runs

### Configuration A -- Data set A

RAM consumption during querying: 500 MB of RAM
Processor time consumption during querying: ~30%

duration;testName;statusCode;datapoints
02,17;1: All information about a DP;200;1
02,16;2a: All DPs according to strict criteria + grouping;200;30
01,89;2b: Same query as above, different building;200;30
02,06;3: Generic query with large number of results + grouping;200;750
34,33;4: Generic query with large number of results + datapoint + grouping;200;750
147,43;5: Generic query with large number of results + all available information + grouping;200;750
02,18;1: All information about a DP;200;1
02,22;2a: All DPs according to strict criteria + grouping;200;30
01,97;2b: Same query as above, different building;200;30
02,09;3: Generic query with large number of results + grouping;200;750
37,36;4: Generic query with large number of results + datapoint + grouping;200;750
151,19;5: Generic query with large number of results + all available information + grouping;200;750
01,03;1: All information about a DP;200;1
01,87;2a: All DPs according to strict criteria + grouping;200;30
02,32;2b: Same query as above, different building;200;30
01,94;3: Generic query with large number of results + grouping;200;750
36,27;4: Generic query with large number of results + datapoint + grouping;200;750
155,71;5: Generic query with large number of results + all available information + grouping;200;750
00,49;1: All information about a DP;200;1
01,62;2a: All DPs according to strict criteria + grouping;200;30
01,91;2b: Same query as above, different building;200;30
01,72;3: Generic query with large number of results + grouping;200;750
37,54;4: Generic query with large number of results + datapoint + grouping;200;750
145,99;5: Generic query with large number of results + all available information + grouping;200;750

### Configuration A -- Data set B

RAM consumption during querying: 760 MB of RAM
Processor time consumption during querying: ~30%

duration;testName;statusCode;dataPoints
12,60;1: All information about a DP;200;1
26,80;2a: All DPs according to strict criteria + grouping;200;100
27,47;2b: Same query as above, different building;200;100
27,08;3: Generic query with large number of results + grouping;200;10000
453,22;4: Generic query with large number of results + datapoint + grouping;200;10000
-;5: Generic query with large number of results + all available information + grouping;-;-


### Configuration B -- Data set A

RAM consumption during querying: 860 MB of RAM
Processor time consumption during querying: ~30%

duration;testName;statusCode;dataPoints
01,17;1: All information about a DP;200;1
01,57;2a: All DPs according to strict criteria + grouping;200;30
00,98;2b: The same query as above, different building;200;30
01,30;3: Generic query with large number of results + grouping;200;750
18,28;4: Generic query with large number of results + datapoint type + grouping;200;750
74,48;5: Generic query with large number of results + all available information + grouping;200;750
00,48;1: All information about a DP;200;1
00,85;2a: All DPs according to strict criteria + grouping;200;30
00,87;2b: The same query as above, different building;200;30
00,83;3: Generic query with large number of results + grouping;200;750
18,82;4: Generic query with large number of results + datapoint type + grouping;200;750
77,67;5: Generic query with large number of results + all available information + grouping;200;750
00,34;1: All information about a DP;200;1
00,88;2a: All DPs according to strict criteria + grouping;200;30
00,87;2b: The same query as above, different building;200;30
00,96;3: Generic query with large number of results + grouping;200;750
17,95;4: Generic query with large number of results + datapoint type + grouping;200;750
84,64;5: Generic query with large number of results + all available information + grouping;200;750
00,76;1: All information about a DP;200;1
01,19;2a: All DPs according to strict criteria + grouping;200;30
00,99;2b: The same query as above, different building;200;30
01,05;3: Generic query with large number of results + grouping;200;750
18,44;4: Generic query with large number of results + datapoint type + grouping;200;750
76,12;5: Generic query with large number of results + all available information + grouping;200;750
00,34;1: All information about a DP;200;1
00,92;2a: All DPs according to strict criteria + grouping;200;30
00,94;2b: The same query as above, different building;200;30
01,13;3: Generic query with large number of results + grouping;200;750
27,34;4: Generic query with large number of results + datapoint type + grouping;200;750
84,66;5: Generic query with large number of results + all available information + grouping;200;750

### Configuration B -- Data set B

duration;testName;statusCode;dataPoints
06,94;1: All information about a DP;200;1
13,60;2a: All DPs according to strict criteria + grouping;200;100
14,06;2b: The same query as above, different building;200;100
16,97;3: Generic query with large number of results + grouping;200;10000
247,06;4: Generic query with large number of results + datapoint type + grouping;200;10000