タグ

ブックマーク / labs.cybozu.co.jp (3)

  • Kazuho@Cybozu Labs: なんとなくリフレクション in C

    « MySQL の ORDER BY を高速化 | メイン | C++ で自動型変換 » 2008年06月25日 なんとなくリフレクション in C++ C++ はとてもいい言語なのですが、リフレクションがありません。昨夜、1年ぶりくらいに C++ でリフレクションしたい熱に感染したのですが、ちょっとググった範囲では良いものが見つからなかったので、作ってみました (単に作りたかっただけという説も)。こんな感じで使います。 #include "reflection.hpp" struct Foo { int i; std::string s; }; // リフレクション情報を定義 namespace reflection { template <> struct def<Foo> : public def_base<Foo> { def() { REFLECTION(i); REFLECTI

    neumann
    neumann 2008/09/27
    リフレクション
  • x86カルトクイズ (mitsunari@cybozu labs)

    x86の解説をいざ始めてみると,どうもblogという媒体はやりにくいので別ページで進めることにしました.すいません.まとめ直すまでしばらくお待ちください.あと基的なことばかり続いたので,ちょっとマニアックネタに走ってみます. というわけで突然ですがクイズです.そこそこ高い難易度に設定したつもりですが,いかがでしょう.初心者の方は全然分からなくても大丈夫です.あえて曖昧な記述をしている部分もあります.後半の答えは凄いものがあるといいなあ.あと,難問奇問募集中. 以下は断りがない限り, 環境は32bit OS上のPentium4以降のx86 CPU 関数の呼び出し規約は__cdecl 配列は16byte alignmentされていて複数の配列はオーバーラップしていない ループは4の倍数と仮定してよい ものとします.CPUに依存する場合は明記してください. Q1(5点) 符号なしeaxの値を4

    neumann
    neumann 2007/10/08
  • Kazuho@Cybozu Labs: システムコールの最適化

    « Swifty 0.03 を公開しました | メイン | MySQL の高速化プチBK » 2007年09月19日 システムコールの最適化 今朝、会社で「最速のファイルコピー」についての話題が出ていました。そこで、ちょっと気になって、read(2) の呼出のオーバーヘッドがどの程度あるのか、ベンチマークをとってみました。 グラフは、それぞれの環境で、10MBのファイルを1,024回読み込むのにかかった時間を示しています。ファイルの内容は当然メインメモリにキャッシュされているので、実際は、カーネル内のバッファキャッシュからユーザープロセスのバッファへのメモリコピーの速度を測定していることになります。このグラフから、以下のような傾向を読み取ることができます。 (言うまでもないことですが)システムコールのオーバーヘッドは大きい Mac OS X のシステムコールのオーバーヘッドは Linux

  • 1