コグノスケ


2012年 3月 11日

流行の波に乗る

最近、何でもかんでも「見える化」するのが流行っていますね。

私も波に乗って「今、ブロックデバイスのどこにアクセスしてるか?」を見える化してみました。見た目としては 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 側に押し付けるのも手か。

GUI を作る

久しぶりに Java で Swing 使って GUI を書きました。Swing は画面設計用のツールがなくても、GUI をお手軽に記述できて、非常に便利だと思います。

…ですが、私の場合 LayoutManager の理解がヘボいせいか、やたらズレたり、妙にデカくなったり、思い通りに配置できません。実行して画面を見ては「違う…、何かが違う…!」となってばかりでもどかしいです。

どうも訓練が足らんような気がするので、もうしばらく格闘というか、修行してみます。

編集者: すずき(更新: 2016年 6月 10日 09:31)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2012年 3月 28日

Java SE の API ドキュメント

Sun のサイトにあったコンテンツは、Sun を買収した Oracle のサイトにどんどこ移されているようですが、以前とは違う形になっていることもあるようです。

今一番困っているのが、Sun が公開していた Java の API ドキュメント(日本語版)が見られなくなっていることです。Oracle は Sun と同じように公開してくれていないみたいで、路頭に迷ってしまいました。

API ドキュメントの tar アーカイブ(なぜか非圧縮)が載っているところは見つけましたが、今のところ Oracle のサイトで参照できる場所が見つけられていません。Java 2 SE 1.3 や 1.4 はまだしも、Java 6 は今もアップデートが続いている現役なのに、困ったなあ。

Oracle がこれからサイトのどこかに置いてくれることを祈りつつ、それまでは不便なのでこのサイトにコピーを載せておくことにしました。

Java 2 SE 1.3 API 仕様
Java 2 SE 1.4.0 API 仕様
Java 2 SE 5.0 API 仕様
Java 6.0 API 仕様

これって勝手に載せていいのかなあ?ま、アーカイブ自体は Oracle が配っているわけだし、文句が来たら来たときで考えましょう…。

編集者: すずき(更新: 2012年 3月 29日 01:30)

コメント一覧

  • すずき 
    復活したっぽいですが、せっかく置いたのでこのままにしておきます。 
    (2012年04月06日 21:19:28)
open/close この記事にコメントする



こんてんつ

open/close wiki
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報