winlin

do performance test, support 1.8k, improve 22%

@@ -365,26 +365,31 @@ Supported operating systems and hardware: @@ -365,26 +365,31 @@ Supported operating systems and hardware:
365 * v0.1, 2013-10-17, support rtmp chunk2message protocol(recv\_message). 365 * v0.1, 2013-10-17, support rtmp chunk2message protocol(recv\_message).
366 366
367 ## Performance 367 ## Performance
368 -1. 300 connections, 150Mbps, 500kbps, CPU 18.8%, MEM 5956KB.  
369 -1. 600 connections, 300Mbps, 500kbps, CPU 32.1%, MEM 9808KB.  
370 -1. 900 connections, 450Mbps, 500kbps, CPU 49.9%, MEM 11MB.  
371 -1. 1200 connections, 600Mbps, 500kbps, CPU 72.4%, MEM 15MB.  
372 -1. 1500 connections, 750Mbps, 500kbps, CPU 81.9%, MEM 28MB.  
373 -1. 1800 connections, 900Mbps, 500kbps, CPU 90.2%, MEM 41MB. 368 +
  369 +Performance benchmark history:
  370 +* 2014-07-12, SRS 0.9.156, virtual box, virtual box, 1800 clients, 68%CPU, 38MB
  371 +* 2013-11-28, [SRS 0.5.0](https://github.com/winlinvip/simple-rtmp-server/commit/023e23bc8261bec15a70a7ae932098fb4f82b679), virtual box, 1800 clients, 90%CPU, 41MB
  372 +
  373 +1. 300 connections, 150Mbps, 500kbps, CPU 5.7%, MEM 9208KB.
  374 +1. 600 connections, 300Mbps, 500kbps, CPU 18.3%, MEM 13MB.
  375 +1. 900 connections, 450Mbps, 500kbps, CPU 27.9%, MEM 20MB.
  376 +1. 1200 connections, 600Mbps, 500kbps, CPU 43.9%, MEM 26MB.
  377 +1. 1500 connections, 750Mbps, 500kbps, CPU 55.2%, MEM 32MB.
  378 +1. 1800 connections, 900Mbps, 500kbps, CPU 68.8%, MEM 38MB.
374 379
375 <pre> 380 <pre>
376 [winlin@dev6 srs]$ dstat 381 [winlin@dev6 srs]$ dstat
377 ----total-cpu-usage---- -dsk/total- ---net/lo-- ---paging-- ---system-- 382 ----total-cpu-usage---- -dsk/total- ---net/lo-- ---paging-- ---system--
378 usr sys idl wai hiq siq| read writ| recv send| in out | int csw 383 usr sys idl wai hiq siq| read writ| recv send| in out | int csw
379 - 58 9 32 0 0 1| 0 4168k| 277M 277M| 0 0 | 29k 25k  
380 - 61 8 30 0 0 1| 0 1168k| 336M 336M| 0 0 | 29k 24k  
381 - 63 8 27 0 0 1| 0 2240k| 124M 124M| 0 0 | 32k 33k  
382 - 62 8 28 0 0 1| 0 1632k| 110M 110M| 0 0 | 31k 33k  
383 - 53 7 40 0 0 1| 0 1360k| 115M 115M| 0 0 | 24k 26k  
384 - 51 7 41 0 0 1| 0 1184k| 146M 146M| 0 0 | 24k 27k  
385 - 39 6 54 0 0 1| 0 1284k| 105M 105M| 0 0 | 22k 28k  
386 - 41 6 52 0 0 1| 0 1264k| 116M 116M| 0 0 | 25k 28k  
387 - 48 6 45 0 0 1| 0 1272k| 143M 143M| 0 0 | 27k 27k 384 + 20 12 57 0 0 10| 0 2048B| 101M 101M| 0 0 |3487 1299
  385 + 22 14 52 0 0 12| 0 273B| 137M 137M| 0 0 |3301 954
  386 + 27 17 43 0 0 14| 0 819B| 126M 126M| 0 0 |3221 817
  387 + 22 13 54 0 0 11| 0 137B| 119M 119M| 0 0 |3292 964
  388 + 22 13 55 0 0 10| 0 3413B| 125M 125M| 0 0 |3410 1127
  389 + 24 13 52 0 0 11| 0 1502B| 124M 124M| 0 0 |3868 2028
  390 + 24 14 50 0 0 13| 0 3140B| 116M 116M| 0 0 |4009 2266
  391 + 24 14 50 0 0 13| 0 1502B| 110M 110M| 0 0 |3959 2206
  392 + 23 14 52 0 0 12| 0 2048B| 138M 138M| 0 0 |3832 1873
388 </pre> 393 </pre>
389 394
390 * See also: [Performance for x86/x64 Test Guide](https://github.com/winlinvip/simple-rtmp-server/wiki/Performance) 395 * See also: [Performance for x86/x64 Test Guide](https://github.com/winlinvip/simple-rtmp-server/wiki/Performance)
@@ -5442,3 +5442,4 @@ VOID TEST(ProtocolRTMPTest, RTMPHandshakeBytes) @@ -5442,3 +5442,4 @@ VOID TEST(ProtocolRTMPTest, RTMPHandshakeBytes)
5442 EXPECT_TRUE(ERROR_SUCCESS == bytes.read_s0s1s2(&bio)); 5442 EXPECT_TRUE(ERROR_SUCCESS == bytes.read_s0s1s2(&bio));
5443 EXPECT_TRUE(bytes.s0s1s2 != NULL); 5443 EXPECT_TRUE(bytes.s0s1s2 != NULL);
5444 } 5444 }
  5445 +