Update of /cvsroot/curl/curl-www/libcurl/hiper
In directory labb:/tmp/cvs-serv18691
Modified Files:
_schedule.html
Added Files:
perf-20051209.png perf-20051209t.png
Log Message:
new info, new graph
--- NEW FILE: perf-20051209t.png ---
(This appears to be a binary file; contents omitted.)
Index: _schedule.html
===================================================================
RCS file: /cvsroot/curl/curl-www/libcurl/hiper/_schedule.html,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -d -r1.14 -r1.15
--- _schedule.html 7 Dec 2005 15:42:34 -0000 1.14
+++ _schedule.html 9 Dec 2005 10:39:34 -0000 1.15
@@ -32,6 +32,48 @@
<table class="news">
+MARKDATE(Dec 9 2005) I consider this round of tests to complete my first
+ investigation and measure phase in which I've carefully studied how an
+ applicaton performs with the existing API and the accompanying "enforced" use
+ of select().
+
+<p>
+ I worked around the 1024 connection limits for both
+ server and client side. I built the test program and ran it to use a single
+ active connection and N number of idle ones (idle meaning the server never
+ repsonds with any data, it just keeps the connection alive).
+<p>
+ The results were pretty much as I had imagined, and I'm pleased with the test
+ setup and the stable and repeatable test numbers. Due to the amount of RAM in
+ my test box, and the amount of memory required for each single connection in
+ both the client and server (since they were running on the same box), I
+ stopped testing at 9000 simultaneous connections since doing more would've
+ forced use of swap and killed all reliable results.
+<p>
+ I ran the test client with 1001, 2001, 3001, 5001 and 9001 connections and
+ measured how long select() and curl_multi_perform() would take in average,
+ over a period of 20 seconds. Each read call in libcurl would only read one
+ single byte, so thus we are sure that the active connection will be
+ "readable" in the select() sense during the entire test. It also ensured that
+ there would be no significant time spent in the read() call itself. The
+ read() overhead is thus also constant in all the tests.
+<p>
+ <a href="perf-20051209.png"><img src="perf-20051209t.png" border="0"></a>
+<p>
+ The exact numbers of the graph are:
+<pre>
+Connections multi_perform select
+1001 3504 951
+2001 7606 1988
+3001 11045 2715
+5001 16406 4024
+9001 32147 8030
+</pre>
+<p>
+ Each time above is in microseconds and is the average time of 5 or 6 test runs.
+
+STOP
+
MARKDATE(Dec 7 2005) Different test/measure approach:
<p> I now have a local HTTP server that can serve two modes: idle and
--- NEW FILE: perf-20051209.png ---
(This appears to be a binary file; contents omitted.)
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.