About

About.PerformanceTests-UserLocation History

Hide minor edits - Show changes to output

May 14, 2013, at 02:19 PM by 109.99.235.212 -
Changed line 1 from:
!! About -> [[About/PerformanceTests|Performance Tests]] -> User location - search performance
to:
!!!!! About -> [[About/PerformanceTests|Performance Tests]] -> User location - search performance
May 09, 2013, at 12:58 PM by 109.99.235.212 -
Changed line 1 from:
!! About -> [[Resources.PerformanceTests|Performance Tests]] -> User location - search performance
to:
!! About -> [[About/PerformanceTests|Performance Tests]] -> User location - search performance
April 24, 2013, at 02:33 PM by 109.99.235.212 -
Added lines 1-56:
!! About -> [[Resources.PerformanceTests|Performance Tests]] -> User location - search performance
This page has been visited {$PageCount} times.
(:toc-float Table of Content:)
----

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.


----
!!! 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.


----
!!! 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.


----
!!!! 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).

%rfloat width=900px % http://www.opensips.org/uploads/Resources/general_comparison.jpg | '''General view'''
>>blue<<
'''Results''':
* old implementation (OpenSIPS 1.6.0) = 13 micro secs (avg per query)
* new implementation (OpenSIPS 1.7.0) = 4 micro secs (avg per query)


>>red<<
''' -> BOOST = 3.25 times faster '''
>><<

%rfloat width=900px % http://www.opensips.org/uploads/Resources/single_sample.jpg | '''Single Sample (detail) '''

----
!!!! 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