[過去ログ]
Rust part16 (1002レス)
Rust part16 http://mevius.5ch.net/test/read.cgi/tech/1656285423/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
251: デフォルトの名無しさん [sage] 2022/07/08(金) 09:41:28.80 ID:v7XD1ZOP 循環参照は自然に発生しないって、コードを何も書かなければ発生しないって意味かな http://mevius.5ch.net/test/read.cgi/tech/1656285423/251
252: デフォルトの名無しさん [sage] 2022/07/08(金) 09:42:55.25 ID:QpPOct5C >>248 新たなプロジェクトが次々とRustを採用している現実を直視しようぜ >>249 循環参照はRust以外だと知らぬ間に発生してしまう自然なよくあるものだが Rustでは複雑な操作で意図的に作り出さないと出現すらしない点を理解しようぜ http://mevius.5ch.net/test/read.cgi/tech/1656285423/252
253: デフォルトの名無しさん [sage] 2022/07/08(金) 09:58:58.97 ID:BqWLp+Ol RAIIでメモリをケアするのは GC方式にくらべて高速ってのはまぁそうなんだけど それよりも 開放タイミングが決定的であることのほうが特徴 オブジェクトの生存期間によってメモリの使用期間もプログラマが管理できて嬉しい http://mevius.5ch.net/test/read.cgi/tech/1656285423/253
254: デフォルトの名無しさん [sage] 2022/07/08(金) 12:01:11.06 ID:bBPWEvXX >>236 参照カウント方式と区別したいなら、「GC方式」みたいな曖昧な用語はやめて「トレーシングGC」を使おうぜ。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/254
255: デフォルトの名無しさん [sage] 2022/07/08(金) 12:37:51.01 ID:4Cg/jdLt >まず、Rustは自動的に即座にメモリ解放されるため他の言語と比べて高速かつ安全 この時点で嘘だらけなんだから、それ以上読む必要無い 日本語ブログだとこういう複オジレベルの人が多数派なので Rustを本気で学びたいやつは英語のリソースメインで学ぶことを強くすすめる http://mevius.5ch.net/test/read.cgi/tech/1656285423/255
256: デフォルトの名無しさん [sage] 2022/07/08(金) 12:39:17.46 ID:u4+He/YT >>249 アンチは実際にプログラミングしたことがないのかね Rc<T>自体は書き換えできないのでRc<T>だけでは循環参照を作ることができない Rc<T>とWeak<T>は互いに対称ではないため直接置き換える対象ではない 例えばnewもRc::new(T)とWeak::new()で引数Tの有無からして異なる さらに多人数で作業するから強い循環参照を知らぬ間に作ってしまうとの言い訳も意味不明だ http://mevius.5ch.net/test/read.cgi/tech/1656285423/256
257: デフォルトの名無しさん [sage] 2022/07/08(金) 12:42:18.47 ID:u4+He/YT >>255 Rustは所有者がいなくなると自動的に即座にメモリ解放されるため他の言語と比べて高速かつ安全で合っている http://mevius.5ch.net/test/read.cgi/tech/1656285423/257
258: デフォルトの名無しさん [sage] 2022/07/08(金) 14:56:50.59 ID:bBPWEvXX >>257 メモリを解放しないCopying GCの方が高速なんだけどなぁ。 Rustもメモリ解放しない実装なのかね?RAIIならスタック領域しかメモリを確保しないとか。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/258
259: デフォルトの名無しさん [sage] 2022/07/08(金) 16:11:26.76 ID:VZayErSn >>258 C++もRustも仕組みは同じ RAIIによりスコープを外れた対象のスタック部分が解放される時にそのデストラクタによってヒープ部分が解放される 汎用的にはこれが最も高速かつ利便性>>253が高い Copying GCは特殊な環境で特殊な使い方に限定する場合は速いこともありうるがデメリットも多く一般的には使われることが少ない 使用メモリが多くなるとかコピーで値を移動させるため非常に遅いなどのデメリットの他に そこを指す全てのポインタ値をGCのたびに
全て修整しなければならないという致命的な欠陥がある C/C++/Rustなどでスタック上に置かれたポインタ値の全てを的確に書き換えるのは不可能なので使えない http://mevius.5ch.net/test/read.cgi/tech/1656285423/259
260: デフォルトの名無しさん [sage] 2022/07/08(金) 16:24:07.17 ID:atE4xqm8 短時間で終了するプログラムはfree呼ばずにexitした方が高速な場合がある copy gcも条件付きだが高速な場合がある 常にRAIIによるメモリ解放が他の手段より高速というのは誤り 100%正しいという風に断言するから枝葉の議論になるし最初から論理的に厳密な文章書いた方が良いよ http://mevius.5ch.net/test/read.cgi/tech/1656285423/260
261: デフォルトの名無しさん [sage] 2022/07/08(金) 16:35:35.79 ID:VZayErSn >>260 これは特殊な使い方限定の話を持ち出したら意味がない話 既に書いたようにCopying GCは汎用的には使いものにならない 一般的にはRAIIによる解放が最も高速かつ利便性が高い そのためC++でもRustでもその方法がとられている http://mevius.5ch.net/test/read.cgi/tech/1656285423/261
262: デフォルトの名無しさん [sage] 2022/07/08(金) 17:23:29.15 ID:cRmlWf2z copying GCはJavaで使われているのだが 解放しない、以外でスタックの解放(malloc的なものに対する)freeより速いものはあるの? http://mevius.5ch.net/test/read.cgi/tech/1656285423/262
263: デフォルトの名無しさん [] 2022/07/08(金) 18:32:33.29 ID:r9xh0XFc >>246 C++にもweak_ptr<>あるけど。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/263
264: デフォルトの名無しさん [sage] 2022/07/08(金) 18:32:40.38 ID:IcalP2aj RAIIがGCより高速なら RAIIの一例であるshared_ptrはGCの一例であるARCより高速ということになるが どういう原理で高速になるの? http://mevius.5ch.net/test/read.cgi/tech/1656285423/264
265: デフォルトの名無しさん [] 2022/07/08(金) 18:42:02.74 ID:r9xh0XFc でも、Firefox良く落ちるじゃん。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/265
266: デフォルトの名無しさん [] 2022/07/08(金) 18:45:00.33 ID:r9xh0XFc でも、JavaはC++も20倍速いってサイト無くなったじゃん。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/266
267: デフォルトの名無しさん [] 2022/07/08(金) 18:50:36.37 ID:r9xh0XFc >>261 だって、RustはC++0xのパクリじゃん。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/267
268: デフォルトの名無しさん [sage] 2022/07/08(金) 18:52:55.66 ID:hlO59OkW >>264 shared_ptrではRAIIによって解放しない RAIIによってデクリメントするだけ SwiftなどでのARCが遅い理由は参照型の全てにおいてshared_ptrを使用しているような状況であるためコストが高い http://mevius.5ch.net/test/read.cgi/tech/1656285423/268
269: デフォルトの名無しさん [] 2022/07/08(金) 18:54:07.09 ID:r9xh0XFc じゃあ、unique_ptr<>でいいじゃん。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/269
270: デフォルトの名無しさん [sage] 2022/07/08(金) 19:10:19.78 ID:hlO59OkW >>269 unique_ptrとshared_ptrの役割の違い、動作の違いを理解できていない君が 間違えて用いてもC++ではコンパイルが通ってしまったりして実行時に問題を引き起こす Rustは間違えて用いるとコンパイルエラーとなり通らないから安全側に救われる http://mevius.5ch.net/test/read.cgi/tech/1656285423/270
271: デフォルトの名無しさん [sage] 2022/07/08(金) 20:02:01.67 ID:A8oltmgp >>268 参照型の全てにshared_ptrを利用したら何で遅くなるの? http://mevius.5ch.net/test/read.cgi/tech/1656285423/271
272: デフォルトの名無しさん [sage] 2022/07/08(金) 21:48:50.65 ID:i9Nd4OSx >>257 即座に開放というのがOSに返却とか認識してたらアウトだぞ。 アロケーターなに使うかで実際の挙動は変わってくるからな。 普通しないがクソアロケーター使ったら、OSからみたらリーク同然になったりするし。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/272
273: デフォルトの名無しさん [sage] 2022/07/08(金) 21:53:34.22 ID:G/CdBPp1 所有者がいないとメモリ解放って間違ってるよね? 所有者がいてもブロックから出たら解放されるからコンパイルエラーが出てコンパイルされない http://mevius.5ch.net/test/read.cgi/tech/1656285423/273
274: デフォルトの名無しさん [sage] 2022/07/08(金) 22:05:32.56 ID:h7kEq7Ot OSSでうっかり強循環参照作ってしまってた例が過去スレにあったようなと掘り返してみたところ、Part11にて発見 https://github.com/DataDog/glommio/commit/677fe1dfbaf911245fbc5c3eef75532d08d784bf https://github.com/KWARC/rust-libxml/commit/bd4b120b90b2568ca6d5bfaa368a200573b87d09 http://mevius.5ch.net/test/read.cgi/tech/1656285423/274
275: デフォルトの名無しさん [sage] 2022/07/08(金) 22:23:05.26 ID:RqLk9Xjf >>272 そんなバカな認識するのはオマエだけだろw http://mevius.5ch.net/test/read.cgi/tech/1656285423/275
276: デフォルトの名無しさん [sage] 2022/07/08(金) 22:38:42.99 ID:J0vSCVey >>273 所有者がいなくなるとメモリ解放であってるよ スコープを抜けると所有者がいなくなりデストラクタが呼ばれて管理していたヒープ領域があれば解放される http://mevius.5ch.net/test/read.cgi/tech/1656285423/276
277: デフォルトの名無しさん [sage] 2022/07/08(金) 22:51:41.26 ID:j0PLF9Z7 所有権とは?の話に戻っちゃうな 複製おじさんネタで散々繰り返したやつ http://mevius.5ch.net/test/read.cgi/tech/1656285423/277
278: デフォルトの名無しさん [sage] 2022/07/08(金) 23:06:47.48 ID:QSUHt/6/ お前ら何回同じ話ループさせたら気が済むの? http://mevius.5ch.net/test/read.cgi/tech/1656285423/278
279: デフォルトの名無しさん [sage] 2022/07/08(金) 23:08:26.12 ID:h7kEq7Ot なんか合ってるのか分からんけど最近思うこと Rustの言語仕様内に明確に含まれているのはlifetimeだけで 所有権とか所有者ってのは実はただのメタファーでしかない? http://mevius.5ch.net/test/read.cgi/tech/1656285423/279
280: デフォルトの名無しさん [] 2022/07/08(金) 23:12:47.70 ID:r9xh0XFc C++はコンテナのアロケータと積み荷のアロケータが別とかできるくらい柔軟ですよ。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/280
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 722 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.024s