BT

メモリ使用量などが改善されたRust 1.23

| 作者: Sergio De Simone フォローする 13 人のフォロワー , 翻訳者 h_yoshida フォローする 1 人のフォロワー 投稿日 2018年2月8日. 推定読書時間: 2 分 |

原文(投稿日:2018/01/07)へのリンク

読者の皆様へ: あなたのリクエストに応じて、大切な情報を見逃すことなく、ノイズを減らす機能を開発しました。お気に入りのトピックを選択して、メールとウェブで通知をもらいましょう

Rustの最新バージョンの最も重要な改善点は、不要なコピーの回避によって実現したメモリ使用量の削減だ。さらにrustdocも、CommonMark準拠のエンジンを一貫的に使用してドキュメントをレンダリングするようになった。

Rustチームによると、特定のオブジェクトのコピーを避けることで、rustcのメモリ使用量が5-10パーセント削減された。ただしこの数値は、コンパイルされるプログラムによって異なる可能性がある。具体的に言うと、現在のrustcは、これまではローカル変数と引数の間であった等価性の判断を関数まで拡げている。これによって、引数をローカルにバインドする場合に、その引数のコピーを作る必要がなくなった。このコピーの振る舞いは、かつてはMIRレベルにあったが、その後廃止された、ローカル変数と引数との区別の名残だった。ローカル変数と取得引数の区別を廃止したことによって、メモリ使用量が改善されただけでなく、デバッグ情報に関する誤解も少なくなっている。変更可能なローカルバインディングでは状況がさらに悪く、引数が実際に変更されていないにも関わらず、デバッガではローカル変数が変化する場合もあった。

もうひとつの興味深い点は、rustcにおいて、到達不能な命令をハードウェアトラップに変更するLLVMのTrapUnreachableが有効になったことだ。これまでは、制御フローが到達不能な命令を踏み越えると、メモリ上でその後にあるコードが実行される可能性があった。この変更によって、到達不能なコードにおける未定義動作による影響の軽減が期待できる。

ドキュメントに関しては、rustdocは、CommonMarkに完全準拠するための作業を続けてきた。Rust 1.23のドキュメントは、従来のRustのレンダラであるHoedownと、CommonMark準拠のレンダリングエンジンの両方でレンダリングされる。この処理は今後しばらく継続される予定で、レンダリングに何らかの差異があった場合はrustdocが警告することによって、ドキュメントの保守担当者がそれを修正することができる。将来的には、CommonMark準拠のエンジンがデフォルトになる予定だ。

Rust 1.23では、プリミティブ型にAsciiExtトレイトが追加されるなど、ライブラリの安定化も図られている。これによってu8charstrは、AsciiExtトレイトをインポートせずにそのメソッドを使用できる。

RustのパッケージマネージャであるCargoにも、複数のパッケージの同時アンインストールのサポート、“cargo install --version”を使った特定のパッケージバージョンのインストールなど、いくつかの改良が加えられている。

その他にも多数の変更と改良が加えられたRust 1.23は、“rustp update stable”の実行でインストールすることができる。

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

特集コンテンツ一覧

ASP.NET Core - シンプルの力

Chris Klug 2018年6月4日 午前3時26分

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT