最近、何でもかんでも「見える化」するのが流行っていますね。
私も波に乗って「今、ブロックデバイスのどこにアクセスしてるか?」を見える化してみました。見た目としてはWindows 9x時代のデフラグ(うーん、懐かしい)をイメージしています。
アクセス箇所の取得ドライバ、見える化用のGUI、表示設定用のGUI、くらいがあればできそうです。
思いつきレベルの実装に時間かけるのは無駄だよネ!ってことで、ドライバもGUIも超手抜きで実装してみて、ひとまず動きました。とまあ、説明では意味がわからないと思うので、キャプチャしてみました。
アクセスの見える化開始→ext3でフォーマット→Linux Kernelのtarball展開→make menuconfig→make(途中で中止しています)です。
動画では全部で2500個のブロック表示していて、監視している領域は8GBなので、1個3MBくらいです。水色がReadアクセス、ピンク色がWriteアクセス、R/Wが重なったときは紫になります。
いろいろアクセスパターンを見てみると、mkfs.ext2とかmkfs.ext3は流れ星みたいで綺麗だなーとか、ジャーナルFSはあまり動きがなくて面白くないなー、とか。監視しているとI/O速度が遅くなりすぎて欠伸が出ますけどね。
ローレベルプログラムをJavaで書くのはしんどいし、GUIをCで書くのはもっとしんどい。ってことで、ローレベル側(C)とGUI(Java)で分離することにしました。
で、ふと疑問が沸いたのですが、Cで書いたプログラムからJavaで書いたGUIプログラムにバイナリデータを送るときって、どうやって渡すのが一般的なのでしょう?
あとx86の場合はCとJavaでエンディアンが異なる(Cはリトル、Javaはビッグ)ので、その変換も必要ですが、どっちでやるのが良いのでしょうね??
とりあえず性能無視でC側でビッグにひっくり返して、通信はソケット(TCP)を使っていますけど、C側がとても忙しそうで、性能が悪いです。やることが少ないJava側に押し付けるのも手か。
久しぶりにJavaでSwing使ってGUIを書きました。Swingは画面設計用のツールがなくても、GUIをお手軽に記述できて、非常に便利だと思います。
…ですが、私の場合LayoutManagerの理解がヘボいせいか、やたらズレたり、妙にデカくなったり、思い通りに配置できません。実行して画面を見ては「違う…、何かが違う…!」となってばかりでもどかしいです。
どうも訓練が足らんような気がするので、もうしばらく格闘というか、修行してみます。
この記事にコメントする
| < | 2012 | > | ||||
| << | < | 03 | > | >> | ||
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
| - | - | - | - | 1 | 2 | 3 |
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
26年3月10日
22年4月13日
07年11月1日
21年5月22日
26年3月2日
20年10月23日
18年7月21日
02年11月22日
22年11月11日
07年11月2日
23年4月10日
15年11月22日
23年9月11日
18年5月2日
18年9月16日
24年9月20日
14年1月26日
26年2月23日
21年12月28日
26年2月15日
wiki
Linux JM
Java API
2002年
2003年
2004年
2005年
2006年
2007年
2008年
2009年
2010年
2011年
2012年
2013年
2014年
2015年
2016年
2017年
2018年
2019年
2020年
2021年
2022年
2023年
2024年
2025年
2026年
過去日記について
アクセス統計
サーバ一覧
サイトの情報合計:
本日: