Rust
の編集
Top
/
Rust
[
トップ
] [
編集
|
凍結
|
差分
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
Active
Rubyチートシート
成果物リスト
勉強会ログ
↑
アイデア
Webサービス案
Androidアプリ案
電子工作案
GreaseMonkey案
contribute
編集
↑
Recent
2024-07-04
HDDリスト
2023-11-12
自動車保険
2023-08-03
docker
2023-05-17
Rubyチートシート
2023-03-30
RAID5/トラブル20230324
2023-03-25
PC/misuzu
2023-03-24
PC
2023-03-23
PC/DESKTOP-7SL5J8R
2022-12-16
Linux
2022-11-09
Linux/ディスクイメージ取得
2021-05-23
CTF
2021-03-17
PC/misumi
2020-08-31
COMP
2020-03-28
PC/misumi/ubuntu
Windows 10
2018-06-04
Microsoft decode 2018 2日目
Microsoft decode 2018 1日目
2018-04-07
カメラ
2018-01-06
電力自由化
2017-12-21
CROSS×BEATS
B
I
U
D
H
[[]]
<br>
--
- [[Rust 基礎文法最速マスター (rust 0.7 編) - gifnksmの雑多なメモ>http://gifnksm.hatenablog.jp/entry/2013/07/15/170736]] -- Rust のメモリモデル -- ヒープの種類 - [[2.15 What is the difference between a managed box pointer (@) and an owned box pointer (~)?>http://web.mit.edu/rust-lang_v0.9/doc/complement-lang-faq.html#what-is-the-difference-between-a-managed-box-pointer-and-an-owned-box-pointer]] - http://web.mit.edu/rust-lang_v0.9/doc/complement-lang-faq.html#have-you-seen-this-google-language-go-how-does-rust-compare -- Minimal GC impact - By not having shared mutable data, Rust can avoid global GC, hence Rust never stops the world to collect garbage. With multiple allocation options, individual tasks can completely avoid GC. ---( // // An integer managed box, allocated on the local heap. // // Note that `x` itself is a *pointer* to the managed box on the heap. // let x = @10; // // An integer owned box, allocated on the exchange heap. // // Note that `x` itself is a *pointer* to the owned box on the heap. // let x = ~10; Owned box (~T) ヒープ上に獲得された領域の事を指します。 Owned box は、 C++ の unique_ptr のように、単一の変数のみが所有権を持ちます。 Managed box (@T) ヒープ上に獲得された領域の事を指します。 Managed box は、C++ の shared_ptr のように、複数の変数から同一の領域を指すことが可能 ~ も @ もつけない変数はスタックに確保される Borrowed pointer (&T) C++ の参照型のようなもので、任意の値を参照するために用いることができます。 また、指し示した値が無効にならないことを、コンパイラが静的に保証 exchange heap と、 local heap という2種類のヒープが用意されています。 exchange heap 上の値は複数のタスク (スレッドのようなもの) から同時にアクセス可能ですが、 local heap 上の値は単一タスクからしかアクセスできません (タスク毎に固有の local heap があります)。 owned box は exchange heap 上に獲得され、managed box は local heap 上に獲得されます。 すなわち、タスク間でデータをやりとりする場合は、必ず owned box にしなければなりません。 ---)
タイムスタンプを更新
テキスト整形のルールを表示する
Last-modified: 2015-02-14(土) 22:24:06