2016年11月27日日曜日

超エコで超高速なやつらの性能比較: Go vs Node.js (vs Vert.x) 一万同時アクセス (c10k) 問題を解決するプログラム言語

勉強の為に引用しました。
http://qiita.com/LightSpeedC/items/c3537a265fb9f3152f4c

LightSpeedC
2016年02月15日に更新


 ストック
超エコで超高速なやつらの性能比較: Go vs Node.js (vs Vert.x)
今時のWebで大量接続で高負荷になりそうなサイトを作りたい人は必見。
スタートアップ起業が選ぶなら、こういう言語やフレームワークを選ぶべき。
人気が出て急激な負荷に耐えられる様に、最初から正しいアーキテクチャを選んでね。
妙なやつを選んだらサーバはたくさん必要だし、クラウドでも費用が高くなるし大変だよ。
Node.js vs Go の記事を読んだのでこの記事を書いています。
http://yosuke-furukawa.hatenablog.com/entry/2014/02/10/134014
https://speakerdeck.com/yosuke_furukawa/benchmarking-node-dot-js-vs-golang
http://sssslide.com/speakerdeck.com/yosuke_furukawa/benchmarking-node-dot-js-vs-golang



Go
Go 速いっスねぇ。
やっぱりコンパイラだね。
Goroutine とかが効いているんだろうな。
結構エコだと思う。
プログラマが少ないのがちょっと気になる。
C/C++ でやるよりは Go をお勧めします。
メモリーリークさせるより GC で解決する方が今時だよね。
Node.js
でもしばらく Node.js で行きたいかな。
JavaScript プログラマはいっぱいいるし。
簡単でエコだと思う。
ES6 がデフォルトで動く node v4/v5 を使うといいかな。
ES6 generators/yield を使った aa や co とか koajs が革命を起こすと信じている。
(ES7 async/await を ES6 generators/yield と aa/co で実現できる)
co-monk (MongoDB) もちゃんとやってみたいね。
(coroutine の co ね, async-await の aa ね)
コールバック地獄に陥っている人、是非注目してね。
他の言語の yield と同じと思っている人は大間違いだよ。
スレッドをほとんど使わないのが超エコなんだよね。
Vert.x
Java VM が好きな人は Vert.x でやってね。
Java, JavaScript, Ruby, Python プログラマはたくさんいるし
既存のライブラリも呼べていいと思う。
Groovy もあるし Scala, Clojure, とかもそのうち。
で、しっかりとエコだと思う。
Java 8 以降がいいかな。
Lambda 式とか使えるし。
Go も Vert.x も速いね
Go 速い
http://www.techempower.com/benchmarks/#section=data-r8&hw=i7&test=json
Vert.x も速い
http://www.techempower.com/benchmarks/#section=data-r8&hw=i7&test=plaintext
参考: Go 関係
http://www.slideshare.net/derekcollison/go-conference-japan
http://www.slideshare.net/mgiglesias
参考: Node.js 事例
LinkedInの事例: Ruby Rails から Node.js
http://www.infoq.com/jp/news/2012/10/Ruby-on-Rails-Node-js-LinkedIn
PayPalの事例: Java から Node.js
http://www.infoq.com/jp/news/2014/01/paypal-java-javascript
アメーバピグ, ピグライフ
http://www.slideshare.net/akuwano/ss-8876695
http://ameblo.jp/ca-1pixel/entry-11476850674.html
http://next.rikunabi.com/tech/docs/ct_s03600.jsp?p=001987
Node.js について知っておくべきこと
この記事を読んで、同感だなぁ... と思った。
そうなんだよ。他の言語じゃダメなんだよ。
というか他の仕組みじゃダメなんだよ。
という事でこの記事を書いています。
Life is beautiful - node.js と thread hog の話
以前、これ読んでうれしくなった。
・Life is beautiful - node.js と thread hog の話(1)
・Life is beautiful - node.js と thread hog の話(2)
・Life is beautiful - node.js と thread hog の話(3)
・Life is beautiful
Node.jsはC10K問題を解決する銀の弾丸か
他の言語で C10K サーバを実装してみるとどれだけ苦労するのかがわかり
Node.js がどれだけ簡単に記述できるのかわかると思うよ。
自分でも Node.js で C10K サーバ書いてみた
大体 16000 までくらいなら接続できる様だ。C16K だね。
また別記事書く予定。
サーバーマシン1台で同時接続者数1万名を実現するにはどうすればいいのかというノウハウと考え方
サーバーマシン1台でMMO同時接続者数10,000名を実現する方法

0 コメント:

コメントを投稿