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

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
250: 2022/07/08(金)09:30 ID:Gv4jmnae(1) AAS
>>241
PijulもPRQLなど最近の新たな試みはRustで実装されることが多いが
それらはRust言語のためのものではなく汎用的なものであり
それらの問題点もRustとは直接関係がない
今後Rustで書かれた新たなものがどんどん増えていくだろうがそこは区別すべきところかな

一方でそれらをRust言語で使うためのクレートなどがあれば
Rustプログラミングにおいて使う特有の話なので
それらの話題自体を避けるべきではないね
251: 2022/07/08(金)09:41 ID:v7XD1ZOP(1) AAS
循環参照は自然に発生しないって、コードを何も書かなければ発生しないって意味かな
252: 2022/07/08(金)09:42 ID:QpPOct5C(1) AAS
>>248
新たなプロジェクトが次々とRustを採用している現実を直視しようぜ

>>249
循環参照はRust以外だと知らぬ間に発生してしまう自然なよくあるものだが
Rustでは複雑な操作で意図的に作り出さないと出現すらしない点を理解しようぜ
253
(1): 2022/07/08(金)09:58 ID:BqWLp+Ol(1) AAS
RAIIでメモリをケアするのは
GC方式にくらべて高速ってのはまぁそうなんだけど
それよりも
開放タイミングが決定的であることのほうが特徴
オブジェクトの生存期間によってメモリの使用期間もプログラマが管理できて嬉しい
254: 2022/07/08(金)12:01 ID:bBPWEvXX(1/2) AAS
>>236
参照カウント方式と区別したいなら、「GC方式」みたいな曖昧な用語はやめて「トレーシングGC」を使おうぜ。
255
(1): 2022/07/08(金)12:37 ID:4Cg/jdLt(1) AAS
>まず、Rustは自動的に即座にメモリ解放されるため他の言語と比べて高速かつ安全
この時点で嘘だらけなんだから、それ以上読む必要無い

日本語ブログだとこういう複オジレベルの人が多数派なので
Rustを本気で学びたいやつは英語のリソースメインで学ぶことを強くすすめる
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だけで
所有権とか所有者ってのは実はただのメタファーでしかない?
1-
あと 723 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.013s