cache coloringとは プログラムの実行速度を上げるためには、CPUが持っているcacheをいかに上手に使うかが重要になってきます。 プログラムで工夫する事によって、cacheのmiss率を下げて、実行速度を上げる事ができます。 cacheのcoloringとは、cacheのmiss率を下げるためのプログラムテクニックです。 cacheの仕組み 前程 話を簡単にするために、 cacheの方式は、direct mapped。 cacheの1ラインのサイズは16bytes。 cacheサイズは1KB。 とします。 cacheの構成 <--16bytes--> +-----------+ index0 | | +-----------+ index1 | | +-----------+ index2 | | +-----------+ index3 | | +-----------+
社内でやった勉強会の資料です。いちおう、これだけ読んでもわかるように書いたつもりです。ご自由にご利用ください。 なにげなく使っているコンピュータ。でもコンピュータはマシン語で動いています。マシン語を知ることはコンピュータの仕組みを知ること。本書を読むことで、これまでブラックボックスであった“本当のコンピュータ”を学べます。 「はじめて読む8086」帯の惹句より ... and I show you how deep the rabbit-hole goes. - Morpheus, "The Matrix" 勉強会の目的 低レベル言語に触れることで、普段使っているプログラミング言語への理解を深める (旧くて)新しいパラダイムを学ぶ 「それアセンブラでできるよ」と言えるようになる 昔を懐かしみ無駄な薀蓄を語る(講師が) エミュレータ emu8086 Windows用 その他 適宜探して準備し
なんかまず kernel はどうやったもんかなと思ったのでやめておくことに。端末とかも追わないので不完全ではありますが、趣旨としては、以下の非常に高度な技術が詰め込まれたコードがどれだけ大変なことになって実行されているかというようなことを肌で感じたいなと。数字を肌で感じるのは割と大事だと思うんですよね。 #include <stdio.h> int main() { puts("Hello, world!"); } このコードをデバッグ情報つきでコンパイルしたところ、 8812Bytes というところのようでした。ゴルフ的観点においてかなり大規模なコードと言えます。いやまぁそういうのはどうでもいいとして。 でまぁ計測結果によると、ユーザランドでの総実行ステップ数は 92165 、実行したバイト数はループなんかの重複を無視して空間的な意味で考えると 29700 Bytes で、ループなどでの
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日本 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直
Binary 2.0カンファレンス 2006 発表資料とレポート Binary 2.0 カンファレンス 2006 は大盛況のうちに無事終了いたしました。開催にご協力いただいた皆様、スピーカーの皆様、参加していただいた皆様、大変ありがとうございました。当日の発表資料とレポートをこのエントリでまとめます。
2006年12月15日,Binary 2.0 カンファレンス2006が開催された。Binary 2.0 カンファレンスは,機械語やコンパイラなど低レイヤーのプログラミング・テクニックを発表するイベントである。昨年第1回が開催され,今回が2回目となる。昨年の発表者により書籍「BINARY HACKS―ハッカー秘伝のテクニック100選」(オライリー・ジャパン刊)もまとめられている(関連記事)。 今回もさまざまな低レイヤー・プログラミングが披露された。佐藤祐介氏は「Hello, binary world」と題して,Cコンパイラgccの拡張機能を使い,main関数を実行せずに「Hello, world」というメッセージを表示する方法などを紹介。例えばメッセージを表示するprintf文はmain関数ではなく,そのコンストラクタとデストラクタとして記述する。mainを関数ではなく変数として定義し,機械
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く