Hi, obviously the subject is a bit provocative. Recently I was working on the websocket branch with the help of Jeremy. Target put it in a right shape. Too many patches from me fixing issues, not much tested beside spice-html and some integration stuff. Luckily there is a semi official test suite for WebSockets implementations called Autobahn test suite. After fixing some problems I enabled the performance tests. At the beginning the performances were terrible but mostly the reason was the missing TCP_NODELAY settings. After setting TCP_NODELAY performance are much better but still some tests are worst than Python implementation! So why Python is sometimes better than C ? In this case the reply can be seen either using a network capture or an strace. Basically the problem is that header and packet are sent with 2 separate system call causing to send 2 packets instead of one (in many cases). So back to initial question: Is Python faster than C ? Well... the language don't guarantee the result if the implementation is doing the wrong (or in this case the not optimal) thing. What does Python better than C in this case? I would probably say buffering. Back to us I'll use more writev, some buffering or some other way to improve the network performance with websockets (if it's really important). Back to the current Spice code... is Spice doing the right thing with buffering, network and such ? I know the code is not optimal in that area but I did a small test to check a possible sub-optimization using TLS sockets. Using a modified (patch sent today) replay I counted the packets either using not plain sockets and encrypted socket. The difference is about 41% ! I would say there's surely space for improves (it's true you have to account for more data due to TLS framing but really 41% is quite a lot). Frediano _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel