...
In this case, we attempt to read many non-existing data nodes:
Total devices nodes | 500 | 1000 | 1500 | 2000 | 2500 | 3000 |
---|---|---|---|---|---|---|
Time (milliseconds) | 10 | 10 | 9 | 9 | 7 | 8 |
The above case appears to be constant time, but theoretically must be linear - we'll call it negligible time.
...
Recently, functionality was added to enable reading whole lists (CPS-1696). Here we compare performance of reading a container node containing a list, versus reading the list (with all descendants).
Total device nodes | 500 | 1000 | 1500 | 2000 | 2500 | 3000 | xpath |
---|---|---|---|---|---|---|---|
Reading container | 0.386 | 0.712 | 1.529 | 2.667 | 1.759 | 3.112 | /openroadm-devices |
Reading list | 0.585 | 1.335 | 2.036 | 2.860 | 2.769 | 3.949 | /openroadm-devices/openroadm-device |
As can be seen, it is slower reading the list than reading the parent node containing the list.
...
This should narrow the performance gap in this case.
Cps Path Queries
TO DO
There have been massive orders-of-magnitude improvements to query performance. Formerly, queries had quadratic complexity, which is now linear. In the last month alone, performance has improved by 100x.
TO DO Fill this section. See here for a previous PoC analysis: CPS-1646 CpsPath queries using path-component lookup.
Comparison of NCMP Performance across versions
...