RubyだとGILがあるからマルチコアがいかせないとか批判する人いるけど、そのくせシングルスレッドで動くnode.jsをほめるのは矛盾じゃないのかというのは確かにw #rebuildfm
2014-08-08 17:44:26#rebuildfm 53: Less Code Is Better Code (Matz) 聞いた。Node.js がシングルスレッドで CPU 使い切れないの結構言われてますよ
2014-08-08 19:05:59@yosuke_furukawa あれ、僕すごい勘違いしてる?言われてみると numCpus とかでコア数は見てますね
2014-08-08 22:22:51@kysnm コア数分のCPU使い切れないとか最初の方のNode.jsではよく言われてたんですけど、clusterとか出てきててマルチコア使い切れないわけじゃないよなぁとは思います。未だにそれが言われると微妙ですね。あんまり知られてないならその辺もLLDiverとかで言わないと。
2014-08-08 22:26:35@yosuke_furukawa @kysnm CRubyはGVLがあるのでコア使い切ろうと思ったら同じ数のプロセスたちあげないといけない。
2014-08-08 22:30:54@sonots @kysnm まだrebuild聞いてないんだけど、そういう話なのかな。Node.jsのclusterも内部的には同じ数のプロセス立ち上げてるだけだからやってることは同じだけども。
2014-08-08 22:32:24@yosuke_furukawa 今回 Ruby の話で GIL があるからマルチコアで性能が出ない外してほしいって言われるけど言うほど簡単じゃない、Node 使ってる人はシングルプロセスだけど文句言わないじゃないかみたいな話だったんですよ
2014-08-08 22:43:03@yosuke_furukawa @kysnm スレッド切ったらスレッドセーフなコードを書かないといけないので、webアプリとかだったら prefork してマルチプロセスにしちゃったほうが開発が楽だと思います。そう、Java とは違ってね。
2014-08-08 22:44:37@sonots @yosuke_furukawa @kysnm パールは1コアしか使わないけど、シングルスレッドでイベントループ回してではなくで、preforkすることが多いから複数コア使ってるだけだという認識。
2014-08-08 22:44:47@songmu @yosuke_furukawa @kysnm perl 詳しくないんですが、スレッド切ったらマルチコア使ってくれないんでしたっけ? Ruby には GVL があるから羨ましいなと思ってたり…
2014-08-08 22:46:34@sonots @yosuke_furukawa @kysnm Perlはスレッド切ったら普通にシングルコアですが、スレッドは出来損ないなので普通は切るという感じだと思われます。
2014-08-08 22:58:10“perlthrtut - Perl におけるスレッドのチュートリアル - perldoc.jp” htn.to/em7pXF
2014-08-08 22:59:38「もしもあなたが他のスレッドの実装を経験したことがあるなら、事態は全く あなたの予想とは違うことがわかるでしょう。」
2014-08-08 23:09:21「広義の概念は同じです; しかし実装の詳細を調べだしたら、 あなたは失望するか混乱するかのどちらかになるでしょう。 あるいはその両方かもしれません。」
2014-08-08 23:09:26PerlはリファレンスカウントだからCoW効かせやすいからforkでえーやんとか思ってたけど、RubyもGC改良してCoW効きやすくなったとか言ってて、詳細は分からないけど、技術の進歩ってのは凄いもんだな、と思いました。
2014-08-08 23:14:29