Login | Register


About -> Performance Tests -> User location - search performance

This page has been visited 6177 times.

User locations are in general stored in memory for faster searches. Up to OpenSIPS 1.6.0 they were held in a hash-table for faster searching. The trunk (OpenSIPS 1.7.0 (devel)) contains a new version that combines the use of hash-tables and balanced search trees.

The tests were conducted in order to determine the real gain of the balanced search trees in cases with many registered users.

1.  What are the theoretical gains ?

Hash-tables supply a constant query time as long as they are not loaded too much. After a certain limit search time rises linear with the number of registered users. Balanced search trees are used to prevent this from happening.

2.  Performance tests

The tests were done using OpenSIPS 1.6.0 as reference point for search time. OpenSIPS 1.7.0 (devel) is the candidate whose performance was measured.

2.1  Search performance tests

The test was performed with a constant number of 100.000 registered users. Queries were done for users registered at different times ( in the original implementation query time was dependant on how close a user was to the begining of the list).

General view


  • old implementation (OpenSIPS 1.6.0) = 13 micro secs (avg per query)
  • new implementation (OpenSIPS 1.7.0) = 4 micro secs (avg per query)

-> BOOST = 3.25 times faster

Single Sample (detail)

2.2  Conclusions

  • There was an increase of 325% in speed for a test with 100.000 users. For a system with a larger number of users this would increase.
  • Query time is now constant in the size of the registered users pool.
  • For a small system with just a few thousand users the gain would not be noticeable.

Page last modified on May 14, 2013, at 02:19 PM