タグ

2017年5月2日のブックマーク (2件)

  • 君のRustは20倍遅い - 簡潔なQ

    Rustはデフォルトでは来の力を発揮しない。試しに手頃なベンチマークを3個くらい試したらだいたい20~100倍程度遅かった。 「Rustで ○○ を高速にする方法」が知りたい人は、まず、Rustコンパイラが来の力を発揮しているか確認したほうがよい。 Cargoの場合 Cargoでは --release をつけると来の力を発揮してコンパイルする。 $ cargo build --release $ cargo run --release rustcを直接実行する場合 $ rustc -C opt-level=3 -C debug_assertions=no 上記のオプションを設定しない理由 逆に、上記のオプションを使わない理由としては、デバッグモードのほうが諸々のチェックが実行されてよいというのが挙げられる。 例えば、整数演算のオーバーフローはデバッグモードでは捕捉される。なお、オーバ

    君のRustは20倍遅い - 簡潔なQ
    hiroyukim
    hiroyukim 2017/05/02
    “Cargoでは --release をつけると本来の力を発揮してコンパイルする。” なにこの設定かっこいい
  • メモリとスタックとヒープとプログラミング言語 | κeenのHappy Hacκing Blog

    κeenです。 今回の話は別にRustに限ったものではないのですが、よくRustを始めたばかりの人がスタックとヒープが分からないと言っているのをみかけるので少しメモリの話をしますね。 厳密な話というよりは雰囲気を掴んで欲しいという感じです。 メモリは配列 プログラム(プロセス)のメモリには実行するプログラム(機械語)やグローバル変数/定数、関数の引数やローカル変数、その他プログラムで使うデータ領域などを置きます。 プロセスに割り当てられるメモリというのは、1つの巨大なのっぺらな配列みたいなものです。サイズも決まってます。64bit OSなら2^64 byteです。 0 2^64 +--------------- ----+ | | | | | ~~ | | +--------------- ----+ これは仮想的なメモリなので実際の物理メモリに2^64 byteの配列がドンと確保される訳

    メモリとスタックとヒープとプログラミング言語 | κeenのHappy Hacκing Blog