超エコで超高速なやつらの性能比較: Go vs Node.js (vs Vert.x)


超エコで超高速なやつらの性能比較: 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 速い

Vert.x も速い

参考: Go 関係

http://www.slideshare.net/derekcollison/go-conference-japan
http://www.slideshare.net/mgiglesias

参考: Node.js 事例