Hi Micheil, You have mentioned me what I have miss. I was only focused on the performance of http service. After I have done the benchmark with cluster using `net`. I was surprised that `net` are not that slow as`http`.
Here is the result: (with node v0.8.8) >ab -n 200000 -c xxxx 127.0.0.1:8080/ 200client 1000client 2000client node_cluster 21001.89 19000.00 18717.28 tj wite node 23792.30 23175.49 22707.17 tj simple 24220.45 23182.52 22709.86 >ab -n 200000 -c xxxx -k 127.0.0.1:8080/ 200client 1000client 2000client node_cluster 134403.36 136077.29 116258.52 tj wite node 124507.96 109830.13 103300.93 tj simple 124113.37 105600.24 100807.72 >weighttp -n 200000 -c xxxx -t 8 127.0.0.1:8080/ 200client 1000client 2000client node_cluster 48644 41211 43047 tj wite node 78133 76878 72929 tj simple 78061 73478 72209 >weighttp -n 200000 -c xxxx -t 8 -k 127.0.0.1:8080/ 200client 1000client 2000client node_cluster 168867 163490 161464 tj wite node 179399 195751 178095 tj simple 289362 281941 256841 Thread.js get a bigger advantage when benchmark with weighttp that get multi thread support. Currently I implement a simply http service in javascript and it can achieve 60,000+ both connections/sec and requests/sec. I will try to implement a method for programs to register their protocol. When that time, I'll do another benchmark base on http service. Sincerely, Robert Micheil Smith於 2012年8月24日星期五UTC+8上午5時20分08秒寫道: > > Hi Robert, > > How's this compare to a Node.js server running with Cluster (API in 0.8)? > > I expect it to certainly be better than just a single node process running > a net.Server, > but if that process has been setup with Cluster, then you'd have one > server per core > to deal with the shared socket (or, at least, that's my understanding of > it). > > Kind Regards, > Micheil Smith > -- > BrandedCode.com > > On 23/08/2012, at 5:40 PM, Robert L wrote: > > > Hi everybody, > > > > I have worte a node.js addon, to support multi thread with v8, and act > as a ipv4/v6 server, please give it a try. > > Your feedback is very welcome. > > > > Thread.js support: > > 1. Act as a network layer of node.js. > > 2. Register a file to thread - you then run javascript file within the > thread along with the network layer. Thread.js support require(), > console.log, events.Emitter, net.createConnection and typedarray in thread > mode for now. > > > > Benchmark is done by using weighttp on a Ubuntu 12.04 LTS 64bits server > with a i7 2.67G 4cores cpu. > > Performance of a simple 'Hello world' server: > > 60K+ concurrent connections per second. > > 150K~200K concurrent requests per second. > > And it's scale mainly by cpu core number. You can get higher benchmark > by adding more cpu power. > > > > Throughout of 50Kbytes response server: > > using typedarray: 1.7Gbytes per second. > > using javascript string: 290Mbytes per second. > > > > Stability: > > Each connection object is reused, thus the memory allocation is just at > new age, don't need to face gc problem, and it can run days to weeks > without restart the program. > > You can prove it by running node with v8 flag '--trace_gc > --trace_gc_verbose' > > > > Detail benchmark output and test script is supported. > > Because it's written with the support of pthread and epoll , thread.js > is Linux only. > > > > And please support me if it make some useful for your application. > Thanks very much. > > > > homepage: http://rob333.github.com/thread.js/ > > github: https://github.com/rob333/thread.js > > > > > > > > -- > > Job Board: http://jobs.nodejs.org/ > > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > > You received this message because you are subscribed to the Google > > Groups "nodejs" group. > > To post to this group, send email to [email protected]<javascript:> > > To unsubscribe from this group, send email to > > [email protected] <javascript:> > > For more options, visit this group at > > http://groups.google.com/group/nodejs?hl=en?hl=en > > -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
