[過去ログ] Go language part 3 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
816(2): デフォルトの名無しさん [sage] 2020/11/01(日) 20:36:44 ID:Cb/zzig7(1/4) AAS
>>814814(1): デフォルトの名無しさん [sage] 2020/11/01(日) 18:37:50 ID:0aiHjqpe(9/12) AAS
>>810
> M:Nで、かつスケジューラがまともな場合、に関しては相当美味しいと言う事が理解できて
俺は別に美味しいとは思ってないぞ。
M:NならOSのスケジューラと大差ない筈だし、
実際ランタイム判断でN:1に出来る状態でもNodeに負けてるだろ。
カッコイイスケジュールをやりきるより、スケジュールなんてしない、の方がシンプルで速いんだよ。
Goは例の「一方ロシアは鉛筆を使った」のアメリカ側をやりきってる感じがある。
とはいえそれもソフトウェア全体の成長の芽の一つだから、やること自体は頑張れ、でしかないが。
> スケジューラのソースはgithubにあるはずだが、読んだ?
読んでねえよ。ただ、読む価値ねえから読まねえよ。遅いスケジューラなんて意味ねえし。
> Netの話はネイティブスレッド
つまり普通のスレッドだろ?ならWindowsはスレッドのスタックサイズを指摘出来ることになる。
Linuxでこれが出来ないとも思えないので、goroutineは軽いんです、なんて利点はなくなると思うが。
>>812
そりゃお前が理解出来てないと思うぞ。
上述の通り、スライドでもメッセージをkernelに投げてるだろ。
そこを同一CPU内にディスパッチされた場合にのみN:1専用超軽量ルーチンで処理するよう、
スレッドスイッチの際に全部張り直す、というのもありだが、実際それやってても大して速くないと思うぞ。
そこは本来はプログラミングモデルを明示的に変えないと駄目なんだよ。
同一CPU内でのみ動作するスレッドであれば、スイッチのコストはほぼゼロだから、がんがん切り出して問題ない。
一方、メッセージにkernelを挟む必要があるのなら、それはそれだけでコストがかかるから、何でもかんでも切り出したら余計遅くなる。
だから本来は goroutine のみではなく、 golight とか、N:1スケジュール専用のgoroutineを用意しないと駄目なんだ。
それがなくて全部goroutineで扱うから全体的に遅くなってしまう。それがブログ主がやった事だよ。
ただこれを分離するのは思想的にやりたくないんだろ?ならそこが限界だよ。
スケジュールなんかしない、って全然ありえないんじゃないか?それこそ非同期の時代に。
Nodeにはだいたい勝ってるかと。
読んでもないのに読む価値がわかるとは凄いな。
スレッドのスタックサイズが問題ではなくて、ネイティブスレッドか否かが問題なの。アホか?
だから、スレッドではないから、スイッチのコストが全然違うの。
goroutineはスレッドのようなものであって、スレッドではないからそもそも切り替えのコストがほぼない。
だからガンガン切り出していいの。
なんにも聞いてないのな。グリーンスレッド勉強になったんじゃないの?
821(1): デフォルトの名無しさん [sage] 2020/11/01(日) 21:30:51 ID:0aiHjqpe(12/12) AAS
>>816-817
実際Nodeに負けてるのは事実だし、あのブログ読んで技術的に俺は納得してる。
782も納得してるし、他の連中もあの貧弱環境ならそうだな、となると思うが。
ちなみに当たり前だが全ての環境で全敗するわけではないぞ。
俺も数年前に味見でPHP/Node/Goで同じものをPCのXAMPP上で試したが、
GoはNode比2倍、PHP比6倍のパフォーマンスが出た。
(僕のカワイイGoを虐めるな!って感じだから、、これを言ったら満足するか?)
それで俺はPHPで行くことに決定した。
PHPのパフォーマンスで俺には十分だったし、無料鯖は現状PHPのみだからだ。
そしたらGoでやってた奴が「ゴラアふざけんな!」って言ってきたが「知るかボケ」と返した。
あいつはPHPの糞コードがこれ以上世の中に増殖するのが許せなかったらしい。
実は本当はNode無料鯖が大量にあればNodeにしたいのだが、今はそうではない。
よって糞とは分かっているがPHPだ。
ただ、そのGo使いは「Goなんて遅すぎ、Rust行くわ」と言って今はRustでやってるよ。
そりゃパフォーマンスだけで勝負するならRustになるし。
静的なコンパイル言語なんだからスクリプト言語と比べて速いのは当たり前。
それが貧弱環境だと覆るのはアーキが悪いんだよ。
そして何故そうなるのかを色々理解した上で、それぞれが用途に適したものを使えばいいだけ。
今のところ俺がGoを使うことになる芽はない。だからって何だよ、でしかないとは思うけど。
最近のお前らがよく分からんのは、言語べったりで言語と心中しようって奴が多すぎることだ。
お前の使ってる言語が良くても悪くてもお前の成果でもないし、悪口でもないだろ。
ぼくがつかってるげんごすごい=ぼくすごい、なのはゆとり特有な気がするが、
何故お前らがそうなるのかさっぱり分からん。
835(1): デフォルトの名無しさん [sage] 2020/11/02(月) 21:24:24 ID:N3jY4ti2(1/8) AAS
>>816
君がその程度の理解なのは理解した。
ただそれはGoの思想「何でもかんでもgoroutineに切り出せば自動的に速くなります」なのだろうからGoUserとしては悪くない。
しかし現実にはNodeに負けてる、ってこと。
君らの問題は、何故それが起きるのか理解出来ないことだ。
これは806のスライド作った奴もそうだが、何故遅くなるのか、何故速くなるのか、理解出来てない。
ただ、そう教えてもらったから、という知識しかない。
しかしこれもそんなに酷いことではない。
最近は複雑化したハードウェアに対応する為に、ソフトウェアも複雑化してる。
学生では単純に知識量が追いつかない。
となるといわゆる正しい作法で洗脳する、というのが現実的な解で、
それがJavaでのオブジェクト教、Goの場合はgoroutine教なのだろう。
しかし既に言ったがchannelしか使わないのなら現実的にそれでいいんだよ。理由は分からなくても。
ソフトウェアを資産として捉えた場合、正しい作法で書かれた物が大量にあることが重要であり、
君らがGo流の正しい作法で書くのなら、それはGo界の資産となる。だから貢献してる。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.048s