タグ

Cに関するtks_periodのブックマーク (4)

  • ヽ( ・∀・)ノくまくまー(2007-03-23) DB勉強会 〜 大規模ソースコードの読み方 〜

    ● [Rails] DB勉強会 〜 大規模ソースコードの読み方 〜 内輪で集まってDB与太話をやるのかと勝手に想像していたら、ミラクル・リナックスのCTOの吉岡さん(参考1)がいらっしゃって軽く引いた(いい意味で)。前半は吉岡さんのプレゼンで「大規模ソースコードの読み方」。動的なソースコード解析で役立つ profiler や tracer の紹介が勉強になった。これらを使うと、ソースコードを全く読まないどころか、そのアプリケーションを初めて使った場合でもすぐにボトルネックを見つけ出すことができるらしい。実際、Ruby歴3時間の吉岡さんがgc.cのボトルネック解消パッチを作れたとか。(参考2)。素晴らしい。後半はDB周りの雑談から殆どがRailsネタに。吉岡さんすいません。 ● メモ printf デバッグは有益無害 基は -g でコンパイルしてgdbで実際に実行しながらソースコードを追う

  • Kazuho@Cybozu Labs: Cインタプリタ アーカイブ

    2006年07月13日 Collatz 予想 キミならどう書く 2.0 - ROUND 2 - について。 いきなり brainf*ck で書く元気はないので、とりあえず C に起こしてみました。bf 化をにらみつつコード短縮をかねてループや判定条件を 0 基準に変更していったら、こんな感じになりました。 続きを読む "Collatz 予想" 投稿者 kazuho : 2006年07月13日 11:15 | トラックバック (0) 2006年06月26日 C で tail に queue は不要 なんか C で tail を書くのが流行っているらしいので参戦します。 はこべさんや弾さんの例だと、動的なデータ構造を使っているが、これは牛刀だと思いました。少なくとも、djb 先生のお好きな回答でないことは確かです (^^; C で書くとしたら、やはり目的に特化したデータ構造を使うことで、速度と

  • 普通のやつらの下を行け: Cで動的コード生成・実行 - bkブログ

    普通のやつらの下を行け: Cで動的コード生成・実行 スクリプト言語には動的にコードを生成して実行する機能を持ったものが多くあります。 普通のやつらの下を行けの第3回として、今回は C による動的なコード生成と実行に取り組んでみたいと思います。 今回書いたコードの main() 関数は以下のようなものです。 int main(int argc, char **argv) { assert(argc == 2); define(int, add, (int x, int y), "{ return x + y; }"); define(int, mul, (int x, int y), "{ return x * y; }"); define(int, add_argv1, (int x), "{ return x + %d; }", atoi(argv[1])); printf("%d\n"

    tks_period
    tks_period 2005/10/26
    CSPスゴスwwwwwww
  • 普通のやつらの下を行け: C でバックトレース表示 - bkブログ

    普通のやつらの下を行け: C でバックトレース表示 普通のやつらの下を行けの第2回として、今回は glibc の関数を使って C でバックトレース (スタックトレース) の表示を行ってみます。 バックトレースとは バックトレースとは、大ざっぱに言うと、現在の関数に至るまでの道筋です。たとえば、次の Ruby プログラムを実行すると、 1 / 0 の行で例外が発生して、バックトレースの表示とともにプログラムは異常終了します。 def foo 1 / 0 end def main foo end main この例では main から foo を呼び foo の中の 1 / 0 の部分で例外が発生しています。 % ruby divide-by-zero.rb divide-by-zero.rb:2:in `/': divided by 0 (ZeroDivisionError) from div

  • 1