[Opensim-users] LSL HTTP server is slow

Jeff Kelley opensim at pescadoo.net
Wed Jan 13 23:42:13 UTC 2016


Here is a quick & dirty benchmark to measure how fast we can stuff 
data from the real world to a script using the LSL HTTP server. Data 
may come from some sensor or human interaction device, maybe motion 
capture, a Wii Remote, a Kinect ... and would control a simulation in 
real-time.

The benchmark sends requests in the form seq=n, where n is an 
incrementing sequence number. Any sequence gap on the receiver side 
will indicate a lost message. There is an important assumption : we 
are not interested in the reply and don't care reading it. This makes 
a HUGE difference.

Code :
https://github.com/jeff-kelley/opensim-utils/tree/master/lsl_http-benchmark

Let's begin with the LSL script. It allocates a url then wait for a 
request. GET and POST are supported. It checks the received sequence 
number against the expected number and complains it they mismatch. 
Finally, the script counts and display the number of requests it 
receives every second.

On the client side, I chose Perl and the Net::HTTP class. No doubt 
that could be written in Python, Ruby, C#, even PHP. The client opens 
a HTTP connection in KeepAlive, then emit requests at a steady rate. 
Inside the loop, the HTTP write is timed, and the wait to the next 
request is computed.

The variable $reqSec controls the number of request per second. 
Performing the test with different values gives an idea of the 
overall performance.

Now for the unbelievable :

[09:56] Primitive: Requests/second : 207
[09:56] Primitive: Requests/second : 198
[09:56] Primitive: Requests/second : 220
[09:56] Primitive: Requests/second : 198
[09:56] Primitive: Requests/second : 214
[09:56] Primitive: Requests/second : 206
[09:56] Primitive: Requests/second : 207
[09:56] Primitive: Requests/second : 213
[09:56] Primitive: Requests/second : 207

Between two machine on a LAN, my figure is 200. Holy cow! This is 
more than enough for a smooth simulation. As a bonus, you get a 
high-speed, high-jitter event source.

LSL HTTP server slow ?

Not !



-- Jeff


More information about the Opensim-users mailing list