2013年4月21日日曜日

メモリリークの確認


テストの本に書かれていたことでメモ


長時間テスト

不正なポインタ、メモリリークの確認するといい。

ブラックボックステスト(ソースコードを見たりとかではない、
いわゆる出来あがったたものとしてソフトを動かすテスト)の前提ですが。

アプリを一晩とか一週間ぶん回して、
きちんと動くことー。

というお題があったとして。

じゃあどうやってそれを確認するの?

基本の機能の動作の確認もありますが、

もう少し事前の兆候とか、ちょっとなー

という部分をサクット確認できたらと思います。



OSが、WINDOWS XP 7ですと

1)タスクマネージャを起動(CTRL+SHIFT+ESCキーを押す)

2)プロセスタブを表示=>列の選択=>ハンドル、スレッドのレ印を有効

3)対象のイメージ名を選択

■図

こんな感じです。


OSがLINUXですと
わからないので調べてみた。


■ps コマンド ハンドル スレッド
参考URL:https://www.google.co.jp/webhp#safe=off&hl=ja&sclient=psy-ab&q=ps%E3%80%80%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%80%80%E3%83%8F%E3%83%B3%E3%83%89%E3%83%AB%E3%80%80%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89&oq=ps%E3%80%80%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%80%80%E3%83%8F%E3%83%B3%E3%83%89%E3%83%AB%E3%80%80%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89&gs_l=hp.3...384.8434.0.8877.29.29.0.0.0.3.156.2102.25j4.29.0...0.0...1c.1j4.9.psy-ab.8IA42qRsF-0&pbx=1&bav=on.2,or.r_cp.r_qf.&bvm=bv.45512109,d.dGI&fp=2029cedacbe31ef4&biw=1920&bih=908

スレッドは

ps -efにmをつけて

ps -efm

でなにやら1プロセスごとに余分になんか出ている。
というかみずらい。。

ps -efL
-------------------------------
ID        PID  PPID   LWP  C NLWP STIME TTY          TIME CMD
root         1     0     1  0    1 09:42 ?        00:00:00 init [3]

root         2     1     2  0    1 09:42 ?        00:00:00 [migration/0]
root         3     1     3  0    1 09:42 ?        00:00:00 [ksoftirqd/0]
root         4     1     4  0    1 09:42 ?        00:00:00 [watchdog/0]
root         5     1     5  0    1 09:42 ?        00:00:00 [events/0]
root         6     1     6  0    1 09:42 ?        00:00:00 [khelper]
root         7     1     7  0    1 09:42 ?        00:00:00 [kthread]
root        10     7    10  0    1 09:42 ?        00:00:00 [kblockd/0]
root        11
-------------------------------
このNLWPの数がスレッドらしい
参考URL:http://d.hatena.ne.jp/rx7/20101219/p1

ハンドルはちょっとLINUXだと無いらしい

参考URL:http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1079741145

ファイルディスクリプターかー

/proc/(PID)/fd/(ここ)

[root@cent-test01 maint01]# cd /proc/2196/fd
[root@cent-test01 fd]# ls
0  1  2  3

なんか色ついてる。

■proc pid fd  ハンドル
参考URL:https://www.google.co.jp/search?q=proc%E3%80%80fd&aq=f&oq=proc%E3%80%80fd&aqs=chrome.0.57j0l3.5579j0&sourceid=chrome&ie=UTF-8#safe=off&hl=ja&sclient=psy-ab&q=proc%E3%80%80pid%E3%80%80fd%E3%80%80%E3%80%80%E3%83%8F%E3%83%B3%E3%83%89%E3%83%AB&oq=proc%E3%80%80pid%E3%80%80fd%E3%80%80%E3%80%80%E3%83%8F%E3%83%B3%E3%83%89%E3%83%AB&gs_l=serp.3...499897.504669.1.505021.20.13.7.0.0.1.158.1310.6j7.13.0...0.0...1c.1j4.9.psy-ab.yznTMDD_DxI&pbx=1&bav=on.2,or.r_cp.r_qf.&bvm=bv.45512109,d.dGI&fp=2029cedacbe31ef4&biw=1920&bih=951


 0:標準入力、1:標準出力、2:標準エラー出力
らしい

参考URL:http://linuxjm.sourceforge.jp/html/LDP_man-pages/man5/proc.5.html

LIMITSもあるらしい

/proc/(PID)/limits/

参考URL:http://ja.softuses.com/63083

-------------------------------
[root@cent-test01 fd]# cat /proc/2196/limits
Limit                     Soft Limit           Hard Limit           Units
Max cpu time              unlimited            unlimited            seconds
Max file size             unlimited            unlimited            bytes
Max data size             unlimited            unlimited            bytes
Max stack size            10485760             unlimited            bytes
Max core file size        0                    unlimited            bytes
Max resident set          unlimited            unlimited            bytes
Max processes             32767                32767                processes
Max open files            1024                 1024                 files
Max locked memory         32768                32768                bytes
Max address space         unlimited            unlimited            bytes
Max file locks            unlimited            unlimited            locks
Max pending signals       32767                32767                signals
Max msgqueue size         819200               819200               bytes
Max nice priority         0                    0
Max realtime priority     0
-------------------------------
■メモリリーク調査
参考URL:https://www.google.co.jp/search?q=%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%AF+%E8%AA%BF%E6%9F%BB&aq=1&oq=%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%AF%E3%80%80&aqs=chrome.3.57j5j0l2j62l2.5999j0&sourceid=chrome&ie=UTF-8



0 件のコメント:

コメントを投稿