Performance - lengyela89/sirius-incremental-refresh GitHub Wiki

On this page, the comparison of the Sirius' current refresh solution and the incremental refresh solution will be described in terms of performance. We measured every case five times, and took the average of the results. This values will be seen on the diagrams below.

The table below shows the main properties of the semantic model and the size of the derived sirius notation model. The used semantic model was created by copying the content of the root element multiple (1x, 10x, 25x, ...) times.

Semantic model # EObjects # EReferences # EObjects (Sirius notation model)
1x 38 89 93
10x 371 890 903
25x 926 2225 2253
50x 1851 4450 4503
75x 2776 6675 6753
100x 3701 8900 9003
150x 5551 13350 13503
200x 7401 17800 18003
300x 11101 26700 27003
400x 14801 35600 36003
500x 18501 44500 45003
750x 27751 66750 67503
1000x 37001 89000 90003

The first picture depicts the time which is needed for the first derivation of the sirius notation model with the different refresh techniques. As can be seen, in the case of incremental refresh, the initialization time is significantly more, than in case of the current solution. This behavior can be explained by the indexing of the model by the VIATRA incremental query engine. First execution

The second picture depicts the time which is needed for the maintenance of the sirius notation model after the semantic model has changed. As can be seen, using the current solution the maintenance time is significantly (almost linearly) increasing with the size of the semantic model, while the incremental solution can maintain the sirius notation model in less than 5 ms independently from the size of the semantic model. It must be mentioned, that using the incremental solution, the required time by the maintenance only depends on the number of modifications on the semantic model. After modification