あんま日本語情報無いものも多いので適当に要点だけまとめて書いてみます。 使いかたは割と常識的チックな。 -pg つけて実行すると gmon.out ができるので gprof ./a.out とかするとなんか出る。 gprof -l -A -x とかでアノテートとか。 原理は GCC が関数呼び出しにフックかけてて mcount が呼ばれている。 -finstrument-functions とかで自分でも作れます。 タイマも使っていると教えていただきました。時間測定はタイマ使ったサンプリングベース。関数の出入りは mcount で厳密に。 Linux & x86 限定。 LD_PRELOAD=/usr/local/lib/libprofiler.so CPUPROFILE=/tmp/profile.out ./a.out pprof ./a.out /tmp/profile.outとかで実