[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