2010年10月20日水曜日

OProfile コールグラフの使い方

# opcontrol --start && [filepath]
# opcontrol --stop
# opreport -c [filepath]  or  # opreport -c | grep [filename]

gcc -g でコンパイルしておけば,opannotate が使えて,プロファイリング後に
# opannotate -s [filepath]
とするとソースコード内で何行目が何回呼ばれたかが分かるっていう優れもの.

こりゃ便利.

しかし全体プロファイリングするんじゃなくてとあるアプリケーションのコールグラフだけ欲しいんだよなー.
とあるアプリケーションだけのプロファイル方法を調べなきゃ.

2010年10月19日火曜日

OProfileインストール

gprof だとマルチスレッドのアプリケーションのプロファイルがとれないという噂だったので,
OProf を使うことになりました.
OProf は gprof 同様,コールグラフもとれるし,マルチスレッドにも対応している優れものらしい.
インストール時のメモ.

まずはDownload OProfileから最新版のソースをダウンロード.

./configure をしたところ,ライブラリがいくつかないと言われた.
①configure: error: popt library not found
なので単純に yum install popt* で,poptライブラリをゲット.
(popt-devel.i386 : Development files for the popt library
popt-static.i386 : Static library for parsing command line parameters)

②configure: error: liberty library not found
yum で liberty を探しても見つからない.
ぐぐってみたら,Installing Oprofile | KernelTrapにいきついた.
そこで,yum install binutils-devel で,libertyライブラリをゲット.
(binutils-devel.i386 : BFD and opcodes static libraries and header files)

これで無事に ./congfigure → make → make install と,インストールを終えられた.

あとは
# opcontrol --start でプロファイル開始
# opcontrol --shutdown でプロファイル終了
# opreport でプロファイル結果の表示
/var/lib/oprofile/samples 内にデータが保存されていくようです.
これを変えたい場合は,--session-dir=で指定すればOK

取り急ぎここまで.

2010年8月31日火曜日

FTPソフト

mac にも使えるのないかなーって思って調べてたら、
FireFTPっていう、FireFoxのアドオンとして使えるものを発見!
直感的にも使いやすいし、めっちゃ便利。
これは凄い♪

2010年7月13日火曜日

カーネル内で一定時間ごとの動作を行う

カーネル内ってnanosleepとか使えないんですね(Linux-2.6.25)
関数の定義なかった(*_*)
なので、カーネルタイマーを使って一定時間ごとに動作を行うのが良さそうです。

下のページが詳しく書いてあってすごくわかりやすかった!!
のでとりあえずメモメモ。

カーネルタイマーを使う

jiffiesが単位になるから精度は10msってことかな。(HZによるけど)

2010年7月8日木曜日

MySQLをソースからインストール

めちゃ久々の投稿.
MySQLのインストールでこけたのでメモ.

ソースDLして,./configure をした後の make で2度こけました.

1)../depcomp: line 512: exec: g++: not found
→ yum install gcc-c++ で解決

2)./include/my_global.h:988: error: redeclaration of C++ built-in type ‘bool’
→ make clean
make distclean
 した後はじめからやり直して無事 make 通りました.

ソースからインストールした場合ってアンインストールするのってどうするんだろう.
Makefileに特に記述ないぽいから,ディレクトリをがしがし消すのであっているのかな.
相変わらず謎なことだらけだな…
努力しないと.


そして make install したら
/usr/bin/install: memory exhausted
と言われた.
めっちゃメモリ残ってるのに何このエラー!
同じような状況の人が数人いたようなのですが,解決されてないのかな…困ったナ.

http://forums.mysql.com/read.php?11,224710


**7/9 追記**
configureの時にオプションで --with-low-memory をつけると解決するとありましたが,
私の場合ではそれでもだめでした.
selinuxに関するログをはいた後にこのエラーが出たので selinux を止めちゃうという対処法でとりあえずはインストールしてしまいました.

2010年5月13日木曜日

Ruby + R

統計にはRが便利!ということなので、使ってみようと思います。
最近Rubyでスクリプト書いているので、せっかくならそこで使えちゃえば楽かなと。
ということで、Ruby + R | アクトインディ技術部隊報告書を参考に。

・Rインストール
・RSRubyインストール
 −RubyからRを呼び出すため
・使い方
require 'rubygems'
require 'rsruby'

r = RSRuby::instance

r.eval_R(<<-RCOMMAND)
# 実行したいコマンド
RCOMMANDS

ちなみにRの使い方に関してはR による統計処理が便利そう。