[過去ログ] Rust part16 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
256
(2): 2022/07/08(金)12:39 ID:u4+He/YT(1/2) AAS
>>249
アンチは実際にプログラミングしたことがないのかね
Rc<T>自体は書き換えできないのでRc<T>だけでは循環参照を作ることができない
Rc<T>とWeak<T>は互いに対称ではないため直接置き換える対象ではない
例えばnewもRc::new(T)とWeak::new()で引数Tの有無からして異なる
さらに多人数で作業するから強い循環参照を知らぬ間に作ってしまうとの言い訳も意味不明だ
257
(2): 2022/07/08(金)12:42 ID:u4+He/YT(2/2) AAS
>>255
Rustは所有者がいなくなると自動的に即座にメモリ解放されるため他の言語と比べて高速かつ安全で合っている
258
(1): 2022/07/08(金)14:56 ID:bBPWEvXX(2/2) AAS
>>257
メモリを解放しないCopying GCの方が高速なんだけどなぁ。

Rustもメモリ解放しない実装なのかね?RAIIならスタック領域しかメモリを確保しないとか。
259: 2022/07/08(金)16:11 ID:VZayErSn(1/2) AAS
>>258
C++もRustも仕組みは同じ
RAIIによりスコープを外れた対象のスタック部分が解放される時にそのデストラクタによってヒープ部分が解放される
汎用的にはこれが最も高速かつ利便性>>253が高い

Copying GCは特殊な環境で特殊な使い方に限定する場合は速いこともありうるがデメリットも多く一般的には使われることが少ない
使用メモリが多くなるとかコピーで値を移動させるため非常に遅いなどのデメリットの他に
そこを指す全てのポインタ値をGCのたびに全て修整しなければならないという致命的な欠陥がある
C/C++/Rustなどでスタック上に置かれたポインタ値の全てを的確に書き換えるのは不可能なので使えない
260
(1): 2022/07/08(金)16:24 ID:atE4xqm8(1) AAS
短時間で終了するプログラムはfree呼ばずにexitした方が高速な場合がある
copy gcも条件付きだが高速な場合がある
常にRAIIによるメモリ解放が他の手段より高速というのは誤り

100%正しいという風に断言するから枝葉の議論になるし最初から論理的に厳密な文章書いた方が良いよ
261
(1): 2022/07/08(金)16:35 ID:VZayErSn(2/2) AAS
>>260
これは特殊な使い方限定の話を持ち出したら意味がない話
既に書いたようにCopying GCは汎用的には使いものにならない
一般的にはRAIIによる解放が最も高速かつ利便性が高い
そのためC++でもRustでもその方法がとられている
262: 2022/07/08(金)17:23 ID:cRmlWf2z(1) AAS
copying GCはJavaで使われているのだが

解放しない、以外でスタックの解放(malloc的なものに対する)freeより速いものはあるの?
263: 2022/07/08(金)18:32 ID:r9xh0XFc(1/6) AAS
>>246
C++にもweak_ptr<>あるけど。
264
(1): 2022/07/08(金)18:32 ID:IcalP2aj(1) AAS
RAIIがGCより高速なら
RAIIの一例であるshared_ptrはGCの一例であるARCより高速ということになるが
どういう原理で高速になるの?
265: 2022/07/08(金)18:42 ID:r9xh0XFc(2/6) AAS
でも、Firefox良く落ちるじゃん。
266: 2022/07/08(金)18:45 ID:r9xh0XFc(3/6) AAS
でも、JavaはC++も20倍速いってサイト無くなったじゃん。
267: 2022/07/08(金)18:50 ID:r9xh0XFc(4/6) AAS
>>261
だって、RustはC++0xのパクリじゃん。
268
(1): 2022/07/08(金)18:52 ID:hlO59OkW(1/2) AAS
>>264
shared_ptrではRAIIによって解放しない
RAIIによってデクリメントするだけ

SwiftなどでのARCが遅い理由は参照型の全てにおいてshared_ptrを使用しているような状況であるためコストが高い
269
(1): 2022/07/08(金)18:54 ID:r9xh0XFc(5/6) AAS
じゃあ、unique_ptr<>でいいじゃん。
270: 2022/07/08(金)19:10 ID:hlO59OkW(2/2) AAS
>>269
unique_ptrとshared_ptrの役割の違い、動作の違いを理解できていない君が
間違えて用いてもC++ではコンパイルが通ってしまったりして実行時に問題を引き起こす
Rustは間違えて用いるとコンパイルエラーとなり通らないから安全側に救われる
271: 2022/07/08(金)20:02 ID:A8oltmgp(1) AAS
>>268
参照型の全てにshared_ptrを利用したら何で遅くなるの?
272
(1): 2022/07/08(金)21:48 ID:i9Nd4OSx(3/3) AAS
>>257
即座に開放というのがOSに返却とか認識してたらアウトだぞ。
アロケーターなに使うかで実際の挙動は変わってくるからな。
普通しないがクソアロケーター使ったら、OSからみたらリーク同然になったりするし。
273
(1): 2022/07/08(金)21:53 ID:G/CdBPp1(1) AAS
所有者がいないとメモリ解放って間違ってるよね?

所有者がいてもブロックから出たら解放されるからコンパイルエラーが出てコンパイルされない
274
(2): 2022/07/08(金)22:05 ID:h7kEq7Ot(1/2) AAS
OSSでうっかり強循環参照作ってしまってた例が過去スレにあったようなと掘り返してみたところ、Part11にて発見

外部リンク:github.com
外部リンク:github.com
275: 2022/07/08(金)22:23 ID:RqLk9Xjf(1) AAS
>>272
そんなバカな認識するのはオマエだけだろw
276
(1): 2022/07/08(金)22:38 ID:J0vSCVey(1) AAS
>>273
所有者がいなくなるとメモリ解放であってるよ
スコープを抜けると所有者がいなくなりデストラクタが呼ばれて管理していたヒープ領域があれば解放される
277: 2022/07/08(金)22:51 ID:j0PLF9Z7(1) AAS
所有権とは?の話に戻っちゃうな
複製おじさんネタで散々繰り返したやつ
278: 2022/07/08(金)23:06 ID:QSUHt/6/(1) AAS
お前ら何回同じ話ループさせたら気が済むの?
279
(1): 2022/07/08(金)23:08 ID:h7kEq7Ot(2/2) AAS
なんか合ってるのか分からんけど最近思うこと

Rustの言語仕様内に明確に含まれているのはlifetimeだけで
所有権とか所有者ってのは実はただのメタファーでしかない?
280: 2022/07/08(金)23:12 ID:r9xh0XFc(6/6) AAS
C++はコンテナのアロケータと積み荷のアロケータが別とかできるくらい柔軟ですよ。
281: 2022/07/09(土)00:08 ID:Xo3+Ls6P(1) AAS
コンセプトをコンパイラにハードコーディングして変えられないようにしたのがRustってこと?
282
(1): 2022/07/09(土)03:43 ID:dAPednzC(1) AAS
>>256
こいつのような気持ち悪い反吐が出る輩がいるからRustがいまいちメジャーにならない。公式ドキュメント書き換えてこいゴミ
上の文章読んでどの辺が「アンチ」だ?ゴミのくせにイキって恥かいてんじゃねーわw

The Rust Programming Language 日本語版
循環参照は、メモリをリークすることもある
循環参照を回避する: Rc<T>をWeak<T>に変換する
外部リンク[html]:doc.rust-jp.rs
283
(1): 2022/07/09(土)06:36 ID:x6eGZQ2/(1) AAS
>>276
間違ってることを合ってると強弁するのいい加減辞めなよ
284
(1): 2022/07/09(土)07:31 ID:O4my42l1(1) AAS
認める事を全くせず、大したコードも書いてないのにRustやってる事だけが自尊心だから勝手にアンチだの決めつけて
いつも人を見下して偉そう。プロジェクトチームの雰囲気はそいつがいるだけで常に最悪、チームの重荷・会社の害悪。
口癖は「意味不明」
285: 2022/07/09(土)10:34 ID:OnqDT6DB(1) AAS
>>282
実際にコードを自分で書いて理解したほうがいいよ。
その公式Bookに書かれている内容はもちろん正しいし、
その相手>>256の書き込み内容も正しくて、
両者に矛盾はないよ。
1-
あと 717 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.025s