コグノスケ


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/06/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/03/29 01:30)

コメント一覧

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



こんてんつ

open/close wiki
open/close Linux JM
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 2024年
open/close 過去日記について

その他の情報

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