Difference between revisions of "Random number generation"

From reSIProcate
Jump to navigation Jump to search
(new page, early draft)
(No difference)

Revision as of 16:41, 7 February 2011

This section describes some options and performance measurements of the rutil/Random class.

The Random class has compile time options to control how it generates random numbers. It is control via pre-process symbols, defined either by changing Random.hxx or in the build environment.

The choices are:

[WIN32-default] The Random class uses rand().

RESIP_RANDOM_WIN32_RTL The Random class uses Window's RtlGenRandom (aka SystemFunction036) on XP and higher system, and fallsback to rand() on older Windows platforms.

[POSIX-default] The Random class uses libc's random().

RESIP_RANDOM_THREAD_MUTEX The Random class itself keeps a Mutex, and will lock the mutex prior to calling random_r().

RESIP_RANDOM_THREAD_LOCAL The Random class allocate state for each thread and tracks that using ThreadLocalStorage.

Linux Performance results