For every release of LemonTree, we run a set of tests with different test-models to examine the change of both the memory consumption and the total diff/merge times.
This page shows the results of these tests.
As shown by the test results, our goal is to continuously both improve the performance and decrease the memory consumption of LemonTree.
Nevertheless, changes to the supported feature-set may impact both performance and memory consumption negatively. The Remarks section under the test results notes such changes.
Environment
Our test machine has the following setup:
- Operating System: Windows 10 (64 Bit)
- Processor: i7-6700HQ CPU @2.60 GHz
- Memory: 16 GB
Test Case Description
The test results provided on this page are based on a fixed set of test models, which we diff with every released version of LemonTree.
Details on the used test models can be found here:
Measurement Methods
To understand the measurement methods we have used to compile this data or conduct measurements on your own model for a comparison, please refer to this page:
By applying our measurement methods to your own models, you can calculate comparison values to approximate how LemonTree will perform for your models based on the data below.
Test results
Small Model | ||||
LT Version | 1) Loading models | 2) Premerge calculation | 3) Writing merge file | Max RAM usage |
---|---|---|---|---|
2.6.5 (latest release) | 6s | 1s | 1s | 233 MB |
2.6.4 | 6s | 2s | 1s | 247 MB |
2.6.3 | 8s | 2s | 1s | 233 MB |
2.6.2 | 6s | 1s | 1s | 254 MB |
2.6.1 | 7s | 1s | 1s | 237 MB |
2.6 | 4s | 1s | 1s | 242 MB |
2.5 | 8s | 1s | 1s | 255 MB |
2.4.1 | 19s | 1s | 1s | 463 MB |
2.4 | 19s | 1s | 1s | 300 MB |
2.3 | 20s | 1s | 1s | 297 MB |
2.2 | 18s | 1s | 1s | 292 MB |
2.1.4 | 13s | 1s | 1s | 263 MB |
2.1.3 | 13s | 1s | 1s | 265 MB |
2.1.0 | 9s | 1s | 1s | 257 MB |
2.0 | 22s | 1s | 1s | 257 MB |
Medium Model | ||||
LT Version | 1) Loading models | 2) Premerge calculation | 3) Writing merge file | Max RAM usage |
2.6.5 (latest release) | 1m47s | 16s | 18s | 5.365 MB |
2.6.4 | 1m45s | 14s | 18s | 5.400 MB |
2.6.3 | 2m12s | 16s | 6s | 5,301 MB |
2.6.2 | 1m48s | 14s | 5s | 5.165 MB |
2.6.1 | 2m17s | 15s | 9s | 4.988 MB |
2.6 | 1m51s | 18s | 7s | 5.436 MB |
2.5 | 1m52s | 17s | 6s | 4.937 MB |
2.4.1 | 2m10s | 19s | 15s | 5.940 MB |
2.4 | 2m07s | 19s | 17s | 5.908 MB |
2.3 | 2m17s | 13s | 14s | 5.928 MB |
2.2 | 2m23s | 13s | 20s | 6.184 MB |
2.1.4 | 1m57s | 32s | 12s | 5.595 MB |
2.1.3 | 1m51s | 36s | 13s | 5.630 MB |
2.1 | 1m45s | 23s | 21s | 5.980 MB |
2.0 | 2m16s | 20s | 1m | 5.454 MB |
Large Model | ||||
1) Loading models | 2) Premerge calculation | 3) Writing merge file | Max RAM usage | |
2.6.5 (latest release) | 2m10s | 8m36s | 23m37s | 11.251 MB |
2.6.4 | 2m16s | 7m55s | 23m34s | 11.408 MB |
2.6.3 | 2m11s | 7m57s | 17m24s | 11.447 MB |
2.6.2 | 2m14s | 7m41s | 17m35s | 11.135 MB |
2.6.1 | 2m18s | 7m46s | 22m42s | 11.374 MB |
2.6 | 2m35s | 9m41s | 24m02s | 11.605 MB |
2.5 | 2m21s | 8m26s | 19m10s | 11.237 MB |
2.4.1 | 2m30s | 10m4s | 27m57s | 11.750 MB |
2.4 | 2m52s | 10m49s | 24m14s | 11.809 MB |
2.3 | 3m13s | 8m13s | 29m14s | 10.548 MB |
2.2.0 | 2m09s | 7m55s | 21m53s | 10.486 MB |
2.1.4 | 2m22s | 17m58s | 22m38s | 10.011 MB |
2.1.3 | 2m21s | 18m2s | 23m26s | 9.888 MB |
2.1 | 2m47s | 14m19s | 24m16s | 9.406 MB |
2.0 | 2m30s | 15m | 49m | 9.525 MB |
EAExample | ||||
1) Loading models | 2) Premerge calculation | 3) Writing merge file | Max RAM usage | |
2.6.5 (latest release) | 9s | 14s | 3m19s | 758 MB |
2.6.4 | 9s | 15s | 3m19s | 746 MB |
2.6.3 | 10s | 13s | 3m20s | 726 MB |
2.6.2 | 9s | 12s | 3m18s | 770 MB |
2.6.1 | 10s | 13s | 3m14s | 775 MB |
2.6 | 8s | 12s | 3m15s | 750 MB |
2.5 | 10s | 17s | 3m37s | 747 MB |
2.4.1 | 21s | 14s | 5m12s | 774 MB |
2.4 | 22s | 16s | 4m59s | 826 MB |
2.3 | 22s | 16s | 4m57s | 841 MB |
2.2.0 | 19s | 14s | 4m53s | 805 MB |
2.0.0 | 23s | 10s | 7m13s | 764 MB |
2.1.4 | 13s | 32s | 4m44s | 789 MB |
2.1.3 | 12s | 36s | 4m30s | 782 MB |
2.1.0 | 13s | 28s | 4m57s | 738 MB |
Tagged Value Model | ||||
1) Loading models | 2) Premerge calculation | 3) Writing merge file | Max RAM usage | |
2.6.5 (latest release) | 1m24s | 26s | 4m55 | 4.567 MB |
2.6.4 | 1m28s | 27s | 5m46s | 3.552 MB |
2.6.3 | 1m19s | 50s | 4m15s | 4.558 MB |
2.6.2 | 1m26s | 27s | 3m18s | 4.313 MB |
2.6.1 | 1m30s | 26s | 3m16s | 4.257 MB |
2.6 | 1m18s | 24s | 3m18s | 4.256 MB |
2.5 | 1m24s | 32s | 3m39s | 3.839 MB |
2.4.1 | 2m22s | 29s | 3m53s | 5.091 MB |
2.4 | 2m17 | 25s | 4m12s | 4.266 MB |
2.3 | 1m47s | 33s | 4m10s | 4.073 MB |
2.2.0 | 1m46s | 31s | 3m57s | 4.541 MB |
2.1.4 | 1m19s | 59s | 3m54s | 4.359 MB |
2.1.3 | 1m18s | 1m25s | 3m57s | 4.428 MB |
2.1 | 1m52s | 1m | 2m39s | 3.040 MB |
2.0 | 1m52s | 1m | 5m54s | 4.219 MB |
TV Model (Triple Size) | ||||
1) Loading models | 2) Premerge calculation | 3) Writing merge file | Max RAM usage | |
2.6.5 (latest release) | 3m26s | 1m24s | 16m59s | 10.592 MB |
2.6.4 | 3m31s | 1m20s | 17m39s | 9.662 MB |
2.6.3 | 3m31s | 2m28s | 13m54s | 10.839 MB |
2.6.2 | 3m56s | 1m15s | 10m14s | 9.156 MB |
2.6.1 | 3m38s | 1m18s | 10m13s | 9.701 MB |
2.6 | 3m29s | 1m29s | 10m29s | 9.165 MB |
2.5 | 3m44s | 1m46s | 10m57s | 8.875 MB |
2.4.1 | 6m35s | 1m41s | 13m20s | 9.040 MB |
2.4 | 6m46s | 1m32s | 14m41s | 9.420 MB |
2.3 | 4m16s | 1m29s | 12m23s | 8.589 MB |
2.2.0 | 4m40s | 1m18s | 11m56s | 8.496 MB |
2.1.4 | 4m45s | 2m58s | 11m27s | 8.685 MB |
2.1.3 | 4m25s | 4m23s | 12m58s | 9.290 MB |
2.1 | 7m19s | 3m21s | 13m9s | 8.000 MB |
Remarks
- The test environment got a disc encryption before the performance tests of version 2.1.3. We assume that's why the large models take longer on writing/loading. Older versions of LemonTree now also need longer with that models on writing.
- LemonTree 2.6 Version 2.6.0 has increased the performance of diffing and merging, but consumes more memory than version 2.5.0. This had a quite severe impact on the performance results
for our "Large Model" performance test, as it was approaching the cap of available memory for the test machine, which lead to page swapping.
- LemonTree 2.6.1 processes all previously unhandled custom properties of elements
- LemonTree 2.6.4 has resolved issues affecting the memory consumption and the pre-merge times introduced in version 2.6.3, reducing both of those values back to values comparable to version 2.6.2.
However, this version also (re-)introduces the merging of ZOrder values in diagrams, which significantly impacts the merge time for diffs with changes to a significant number of large diagrams.