Go language part 6at TECH
Go language part 6 - 暇つぶし2ch53:デフォルトの名無しさん
25/06/15 11:42:31.83 757F+le4.net
>>52
> GCのコンパクションは移動対象となるオブジェクトに対する全てのオブジェクト参照のアドレスを直接更新する
それはそれで凄いが、
それだとコピーの際に「参照カウンタ+1」のみならず「コピー先アドレスも控えておく」必要があるので、コピーが重くなる
だから結局、GC方式が異なるので一緒くたには出来ないのは変わらない
まあ各者でそれぞれ一番速いと思ってる方式を採用してはいるのだろうけどね

54:デフォルトの名無しさん
25/06/15 12:31:52.55 aUao3Hkb.net
>>47
GC戦略の違いだよ
RustやC++もArena使って別途手動管理しないとGC言語より遅くなる典型例

55:デフォルトの名無しさん
25/06/15 12:43:40.73 HdrNQych.net
>>54

管理を楽にするためにArenaを使う
もちろん速度も上がる

56:デフォルトの名無しさん
25/06/15 13:57:26.71 nsaCurRA.net
ワッチョイの無いスレでRustの話するとすぐこれだ

57:デフォルトの名無しさん
25/06/15 17:27:15.63 dAJ+nMeh.net
>>46(Input depth: 18)のarena version

zig 0.55 (arena)
go 0.58 (arena)
v 0.75
go 1.59
zig 2.78

58:デフォルトの名無しさん
25/06/15 18:20:07.09 lEreEG4E.net
>>55
何の逆だよ
まさかArenaは”自動管理”とか言わないよね?

>管理を楽にするためにArenaを使う
それは比べる対象を間違えてるでしょ

59:デフォルトの名無しさん
25/06/15 18:48:04.01 /MYgDLVa.net
アリーナ使うと管理が楽になるのは事実
ライフタイムが統一されてめちゃ楽

60:デフォルトの名無しさん
25/06/15 21:07:20.22 vsQD4t+X.net
それはRust特有の事情でしかなくない?

61:デフォルトの名無しさん
25/06/15 21:27:39.74 neMcJSIx.net
同じ
arenaはownerを一本化できるためshared_ptrやRc管理をなくせて楽

62:デフォルトの名無しさん
25/06/15 23:28:01.42 woCxiWNy.net
>>59
手動リファレンスカウンティングと手動アリーナ管理を比べられてもね
Goのアリーナ使うコードと使わないコードでも比べたら?

63:デフォルトの名無しさん
25/06/15 23:38:51.16 LkTvbUTI.net
C++とRustにとってはArenaを使うと管理が楽で高速化されて良いこと尽くし
Goは手間増大か

64:デフォルトの名無しさん
25/06/16 01:19:26.26 vcrz/bj1.net
>>49
mallocひとつとっても解放のために確保時点でヘッダーを構成しないといけない
それに根っこから染み付いてて意識してないだろうが、きちんと後で解放できるような構造を取らなくていいならできる最適化は意外と多い

65:デフォルトの名無しさん
25/06/16 07:43:44.87 ZGVdfSpP.net
>>64
まず俺は40ではない(そしてGo使いでもない)
> mallocひとつとっても解放のために確保時点でヘッダーを構成しないといけない
最低限空き領域リンクリストを構成する必要があるが、
遅いのはヘッダ整備O(1)ではなく、空き領域スキャンO(n)だと思う(が、まあこれはいい)
> C言語でも同タイプの用途には特化したプールを用意して一切解放を行わない最適化戦略は行われる (41)
OOPは各オブジェクト毎にちまちまmalloc/freeしてるから遅い
プールの場合にはこれが1回で済む、ここまではいい

そして
> それに根っこから染み付いてて意識してないだろうが、きちんと後で解放できるような構造を取らなくていいならできる最適化は意外と多い
とは具体的に何?
プールだと確保/開放1回分のコストになるので、これ以上速くするにはallocaくらいしか無いと思うが
(まあ俺はalloca賛成派だし、何ならmalloc禁止でallocaだけで組めとも思うが)

66:デフォルトの名無しさん
25/06/16 09:14:01.69 ZCbjnjWl.net
>>57続き
java 0.32s 40MB graal
java 0.44s 202MB
zig 0.55s 16MB arena
go 0.58s 25MB arena

67:デフォルトの名無しさん
25/06/16 20:51:33.51 GI5I1Imf.net
>そしてGo使いでもない
なんでこのスレを覗いてるんですかね…?

68:デフォルトの名無しさん
25/06/16 21:29:49.53 ZGVdfSpP.net
>>67
お前みたいな馬鹿ではないから

69:デフォルトの名無しさん
25/07/14 16:18:19.14 ScqQ9XOL.net
>>67
使ってない言語見てもいいだろうに。

70:デフォルトの名無しさん
25/07/25 02:43:51.32 STYBTcxW.net
>>67
現実では誰も相手にしてくれない嫌われてるおじだからどこにでも顔突っ込んで荒らすのかわいい街の寂しい存在www

71:デフォルトの名無しさん
25/11/02 14:59:56.69 kxQN3KLf.net
goが言語年収ランキングで上位だけどなんでなんだろう

72:デフォルトの名無しさん
25/11/02 15:00:46.79 kxQN3KLf.net
てかなんでdockerてgoで作ろうと思ったんやろう

73:デフォルトの名無しさん
25/11/03 10:08:44.01 3zDb1MP2.net
>>71
「Goを使うと年収が上がる」ではなく、「年収の高い組織においてGoが使われてる」ということだと思うよ
Goを最も使ってる組織は Google だから Google 社員の給料に引っ張られるみたいな話


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch