タグ

2022年1月7日のブックマーク (3件)

  • プログラムがメモリをどう使うかを理解する(2)

    この記事は このシリーズの2目です。 値の表現 前回は 0xDEADBEEF という16進数を直接代入する瞬間を観察しましたが、それができたところであまり嬉しくはありません。なので、もう少し実用的な値がどのように表現され、メモリ上に配置されるのかを見ていこうと思います。 では、main関数の中に変数を色々追加してみましょう。 int main() { bool b0 = true; bool b1 = false; int hp = 9999; int mp = 255; float rate = 0.5f; double pi = 3.14159265358979323846; int intArray[10]; for (int i = 0; i < 10; ++i) { intArray[i] = i; } std::cout << "Hello World!\n"; // ここで

    プログラムがメモリをどう使うかを理解する(2)
  • Google製GNU gold以上の速さを実現 超高速リンカ「mold」を支えるテクニック

    Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。rui314氏は、制作中のリンカである「mold」について発表しました。全2回。後半は「mold」速さと、その高速化を実現するテクニックについて話しました。前半はこちら。 リンカが速いと何がうれしいのか 植山類氏(以下、植山):リンカが速くなって何がうれしいのか。普通にうれしいです。プログラムを書いているとうれしいことがわかると思いますが、makeを実行すると、普通は自分が直前に変更したファイルしかビルドしないので、デバッグをしていると1つのファイルを編集してビルドすることになります。 コンパイラは1つだけのファイルをコンパイルするのはそこそこ速いですが、リンカは基的には実行ファイルを丸ごと作ります。全体の入力を一気に受け取って出力するため、差分コンパイルであっても

    Google製GNU gold以上の速さを実現 超高速リンカ「mold」を支えるテクニック
  • 100 ways to slightly improve your life without really trying

    3 Tip: the quickest supermarket queue is always behind the fullest trolley (greeting, paying and packing take longer than you think). 4 Bring fruit to work. Bring fruit to bed! 5 Consider going down to four days a week. It’s likely a disproportionate amount of your fifth day’s work is taxed anyway, so you’ll lose way less than a fifth of your take-home pay. 6 Everyone has an emotional blind spot w

    100 ways to slightly improve your life without really trying