[Live-devel] Benchmarking

Vlad Seryakov vlad at crystalballinc.com
Tue Apr 10 12:25:13 PDT 2007


Okay, i've been playing with different methods and here my results:

- BasicTaskScheduler can handle up to 70 simultaneous streams

- then i wrote another scheduler which uses poll and handles sockets 
differently via preallocated array, now i can handle up to 90 
simultaneous streams

- then i added epoll support but because epoll does not handle regular 
files i had to enable READ_FROM_FILES_SYNCHRONOUSLY in 
ByteStreamFileSource.cpp. Surprisingly i was able to stream up to 150 
streams. Even when i streamed different big files to see how hard disk 
will be hit, vmstat showed constant block reading activity, i was able 
to stream 150 streams. VLC was 151 and was playing movie perfectly.

Not sure these results are representative enough but looks like overhead 
in BasicTaskScheduler is pretty significant. On the other hand, async 
disk I/O should improve performance, i guess Linux cached all my files 
pretty well so impact of synch reads was not big.

The code currently in CVS if anybody is interested in it, sugegstions 
improvement are welcome:

http://naviserver.cvs.sourceforge.net/naviserver/modules/nsrtsp/nsrtsp.c?revision=1.3&view=markup





More information about the live-devel mailing list