Thank you very much for sharing this!<div><br><div>Cheers</div><div>André<br><br><div class="gmail_quote">On 13 June 2012 18:49, envelopes envelopes <span dir="ltr"><<a href="mailto:sunwood360@gmail.com" target="_blank">sunwood360@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">from: <a href="https://github.com/ericmoritz/wsdemo/blob/master/results.md" target="_blank">https://github.com/ericmoritz/wsdemo/blob/master/results.md</a><div>
<br></div><div>It seems Erlang's connection time is a little bit high. </div>
<div><h2 style="margin:20px 0px 10px;padding:0px;border-width:0px 0px 1px;border-bottom-style:solid;border-bottom-color:rgb(204,204,204);font-size:24px;font-family:Helvetica,arial,freesans,clean,sans-serif">Summary</h2><table style="margin:15px 0px;padding:0px;border:0px;border-collapse:collapse;border-spacing:0px;font:inherit;color:rgb(51,51,51);font-family:Helvetica,arial,freesans,clean,sans-serif;line-height:22px">
<tbody style="margin:0px;padding:0px;border:0px"><tr style="border-top-style:solid;border-top-color:rgb(204,204,204);margin:0px;border-width:1px 0px 0px;padding:0px"><th style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">
Implementation</th><th style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">Connection Time (mean)</th><th style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">
Latency (mean)</th><th style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">Messages</th><th style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">Timeouts</th>
</tr><tr style="margin:0px;padding:0px;border-width:1px 0px 0px;border-top-style:solid;border-top-color:rgb(204,204,204);background-color:rgb(248,248,248)"><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">
Erlang</td><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">00.865ms</td><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">00.017ms</td><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">
2849294</td><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">0</td></tr><tr style="border-top-style:solid;border-top-color:rgb(204,204,204);margin:0px;border-width:1px 0px 0px;padding:0px">
<td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">Java (Webbit)</td><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">00.567ms</td><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">
00.835ms</td><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">1028390</td><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">157</td></tr><tr style="margin:0px;padding:0px;border-width:1px 0px 0px;border-top-style:solid;border-top-color:rgb(204,204,204);background-color:rgb(248,248,248)">
<td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">Go</td><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">00.284ms</td><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">
18.503ms</td><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">2398180</td><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">225</td></tr><tr style="border-top-style:solid;border-top-color:rgb(204,204,204);margin:0px;border-width:1px 0px 0px;padding:0px">
<td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">Node.js</td><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">00.768ms</td><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">
42.580ms</td><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">1170847</td><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">4299</td></tr><tr style="margin:0px;padding:0px;border-width:1px 0px 0px;border-top-style:solid;border-top-color:rgb(204,204,204);background-color:rgb(248,248,248)">
<td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">Python (ws4py)</td><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">01.561ms</td><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">
34.889ms</td><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">1052996</td><td style="margin:0px;padding:6px 13px;border:1px solid rgb(204,204,204);text-align:left">5208</td></tr></tbody></table>
<p style="margin:15px 0px;padding:0px;border:0px;color:rgb(51,51,51);font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:14px;line-height:22px">Both the Python gevent/ws4py implementation and the Node.js websocket implementation failed hard with around half of the connections hitting the 2 second TCP connection timeout.</p>
<p style="margin:15px 0px;padding:0px;border:0px;color:rgb(51,51,51);font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:14px;line-height:22px">I expected Go to kick Erlang's ass in the performance department but the message latency was much higher than Erlang's latency and we had 225 unhappy customers. Go only reached C9.775k; close but no cigar.</p>
<p style="margin:15px 0px;padding:0px;border:0px;color:rgb(51,51,51);font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:14px;line-height:22px">I did not know what to expect with the Java Webbit implementation. I expected it to perform somewhere close to the Go implementation. The Webbit implementation did do much better than the Go implementation but it still had 157 connection timeouts which is unacceptable.</p>
<p style="margin:15px 0px;padding:0px;border:0px;color:rgb(51,51,51);font-family:Helvetica,arial,freesans,clean,sans-serif;font-size:14px;line-height:22px">I was very surprised that node.js fell down after 5001 connections and that gevent fell down at 4792 connections. Both platforms were specifically built to for the C10k problem and both platforms could barely handle C5k.</p>
</div>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div></div>