Skip to content

Commit 6b4f2d7

Browse files
authored
Merge pull request #16 from doganulus/onebase
Onebase
2 parents 29c935a + c1b22f0 commit 6b4f2d7

File tree

2 files changed

+74
-23
lines changed

2 files changed

+74
-23
lines changed

docs/performance.md

Lines changed: 72 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,83 @@
1-
# Benchmark Results
21

3-
We use the benchmark generator [timescales](https://github.com/doganulus/timescales) to benchmark the performance of reelay MTL monitoring app. For measurements, we use [multitime](https://github.com/ltratt/multitime) utility. Tests are performed using a laptop computer (Intel Core i5-7200U CPU @2.50 Ghz, 8GB RAM) on Ubuntu 18.04 on WSL (Build 18362.449).
2+
# Performance
43

5-
The full benchmark suite of `timescales` can be built using the command:
4+
This document present the performance of `ryjson1` application,which checks Rye specifications over multiline JSON logfiles and provide a command line interface to Reelay monitors.
5+
6+
We use `timescales` benchmark generator to measure the performance of `ryjson1`. The benchmark covers a number of common classes of specifications with timing constraints. More information regarding the benchmark generator and motivations can be found in the paper of [Timescales: A Benchmark Generator for MTL Monitoring Tools](https://link.springer.com/chapter/10.1007/978-3-030-32079-9_25).
7+
8+
9+
## Benchmark Reelay
10+
11+
The benchmark can be replicated by typing commands at the Reelay project directory. First generate some data using `timescales` by typing
612

713
make timescales
814

9-
This command will clone `timescales` repository and generate the full suite.
15+
This command will clone `timescales` generator and generates discrete and dense time behaviors for benchmarking. The total size of generated benchmarks is about 2.2GB. There are two variant for dense time behaviors with two different degrees of [condensation]().
16+
17+
make test_performance_discrete
18+
make test_performance_dense10
19+
make test_performance_dense100
20+
21+
To execute these commands, you need `multitime` utility for benchmarking with these commands, which can be installed via `apt` or [from source](https://github.com/ltratt/multitime).
22+
23+
## Results
24+
25+
Below we present performance of `ryjson1` aapplication on a laptop computer (Intel Core i5-7200U CPU @2.50 Ghz, 8GB RAM) on Ubuntu 20.04 and using the version 2008 of Reelay. And we report minimum user time of 10 executions.
26+
27+
28+
### 1) Discrete results
29+
30+
Results over processing discrete time behaviors with a length of 1M.
31+
32+
| Property | 10x | 100x | 1000x |
33+
| ---------- | ----- | ----- | ----- |
34+
| AbsentAQ | 0.246 | 0.224 | 0.234 |
35+
| AbsentBR | 0.265 | 0.268 | 0.277 |
36+
| AbsentBQR | 0.376 | 0.347 | 0.339 |
37+
| AlwaysAQ | 0.242 | 0.223 | 0.219 |
38+
| AlwaysBR | 0.265 | 0.264 | 0.261 |
39+
| AlwaysBQR | 0.388 | 0.342 | 0.342 |
40+
| RecurGLB | 0.211 | 0.164 | 0.155 |
41+
| RecurBQR | 0.473 | 0.412 | 0.411 |
42+
| RespondGLB | 0.395 | 0.321 | 0.310 |
43+
| RespondBQR | 0.597 | 0.544 | 0.529 |
44+
| ---------- | ----- | ----- | ----- |
45+
46+
47+
48+
### 2) Dense10 results
1049

11-
## Discrete Time MTL Application
50+
Condensation allows to represent periods of the same JSON object with a single timestamped object. Dense10 behaviors limits this feature maximum 10 successive time points. Consequently the same temporal behavior is expressed a shorter logfile (up to 10x). Dense time monitors may work over such condensed (dense) logfiles.
1251

13-
Test command:
52+
| Property | 10x | 100x | 1000x |
53+
| ---------- | ----- | ----- | ----- |
54+
| AbsentAQ | 0.446 | 0.356 | 0.334 |
55+
| AbsentBR | 0.398 | 0.344 | 0.335 |
56+
| AbsentBQR | 0.678 | 0.189 | 0.124 |
57+
| AlwaysAQ | 0.453 | 0.358 | 0.342 |
58+
| AlwaysBR | 0.392 | 0.346 | 0.329 |
59+
| AlwaysBQR | 0.896 | 0.243 | 0.169 |
60+
| RecurGLB | 0.302 | 0.103 | 0.083 |
61+
| RecurBQR | 0.676 | 0.222 | 0.169 |
62+
| RespondGLB | 0.751 | 0.222 | 0.155 |
63+
| RespondBQR | 1.452 | 0.402 | 0.253 |
64+
| ---------- | ----- | ----- | ----- |
1465

15-
make test_mtl_performance_discrete
66+
### Dense100 results
1667

17-
Performance results (real, min) of for monitoring common temporal properties over traces with a length of 1 million rows:
68+
Condensation allows to represent periods of the same JSON object with a single timestamped object. Dense100 behaviors limits this feature maximum 100 successive time points. Consequently the same temporal behavior is expressed a shorter logfile (up to 100x). Dense time monitors may work over such condensed (dense) logfiles.
1869

19-
| Property/Scale | 10x | 100x | 1000x |
20-
| ---------- | ----- | ----- | ----- |
21-
| AbsentAQ | 0.834 | 0.828 | 0.830 |
22-
| AbsentBR | 0.809 | 0.833 | 0.843 |
23-
| AbsentBQR | 0.985 | 0.952 | 0.957 |
24-
| AlwaysAQ | 0.827 | 0.815 | 0.814 |
25-
| AlwaysBR | 0.785 | 0.790 | 0.793 |
26-
| AlwaysBQR | 0.973 | 0.951 | 0.955 |
27-
| RecurGLB | 0.754 | 0.698 | 0.702 |
28-
| RecurBQR | 1.102 | 1.068 | 1.068 |
29-
| RespondGLB | 1.008 | 0.927 | 0.943 |
30-
| RespondBQR | 1.285 | 1.237 | 1.215 |
70+
| Property | 10x | 100x | 1000x |
71+
| ---------- | ----- | ----- | ----- |
72+
| AbsentAQ | 0.430 | 0.290 | 0.276 |
73+
| AbsentBR | 0.387 | 0.301 | 0.294 |
74+
| AbsentBQR | 0.627 | 0.103 | 0.033 |
75+
| AlwaysAQ | 0.432 | 0.271 | 0.266 |
76+
| AlwaysBR | 0.376 | 0.273 | 0.280 |
77+
| AlwaysBQR | 0.828 | 0.126 | 0.044 |
78+
| RecurGLB | 0.272 | 0.046 | 0.027 |
79+
| RecurBQR | 0.671 | 0.097 | 0.037 |
80+
| RespondGLB | 0.729 | 0.108 | 0.041 |
81+
| RespondBQR | 1.378 | 0.217 | 0.060 |
82+
| ---------- | ----- | ----- | ----- |
3183

32-
Multitime batch files for these tests can be found [here](https://github.com/doganulus/reelay/tree/master/test/timescales/discrete/multitime).

mkdocs.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ nav:
3232
- User Manual:
3333
- 'Temporal Behaviors' : 'behaviors.md'
3434
- 'Rye Format' : 'rye.md'
35-
- 'C++ API' : 'cpp_api.md'
36-
- 'Python API' : 'python_api.md'
35+
# - 'C++ API' : 'cpp_api.md'
36+
# - 'Python API' : 'python_api.md'
3737
- 'Benchmarking' : 'performance.md'
3838

3939
- Advanced Topics:

0 commit comments

Comments
 (0)