«前の日(11-04) 最新 次の日(11-06)» 追記

netail.net

自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.

最近のお知らせ (古いものはこちら)


2002-11-05 古い日記からの変換データ

_ LAN

ここ最近,ノートパソコンからデスクトップにデータを転送する必要がなかったので気にしてなかったが,LAN カードが1枚壊れたおかげで,わざわざ外部から一時的に切断して(ケーブルを差し替えて)内部に繋がないといけない.

たまたま外のサーバで作業中に,内側のリソースにアクセスしたくなって,とても困った.少し値段はするが,また X-JACK のカードを買うか…….

デスクトップ側をルータにしてもよいのだが,ファイアウォールをセットアップする手間に加えて,作業するときには常にデスクトップを起動してないといけないというのが,デスクトップのシャットダウン時に謎の致命的例外が発生する現状では,ちょっと悩ましい.

_ 学祭

写真のアップロード作業終了.その旨のお知らせメールも投げたし,いちおう完了.

やはり,写真とその説明のリストは適当なテキストファイルか XML 形式にしてHTML を自動生成する仕組みのほうが楽なので,何か適当な CGI でも書いてみることにする.


2003-11-05 古い日記からの変換データ

_ 紅茶

ディコム100g とダージリン・ナムリン・セカンドフラッシュ50gを缶に補充.これでまた1ヶ月くらいもつか.

_ 論文

AspectJ の Weave プロセスを紹介した論文がAOSD2004 に投稿されたらしい.

Erik Hilsdale, Jim Hugunin:Advice Weaving in AspectJ

・AspectJ のアドバイスがどうバイトコードにコンパイルされるか 特殊変数を参照していない場合はそれらのデータが 渡されるのを省略してパフォーマンス改善

・Join Point shadows pointcut 定義はあくまで実行時の Join Point 集合だが, それをソース上にマップした shadow として 何をとるか,pointcut designator との対応表.

・変換されたコードは AJ_SYNTHETIC 属性を持つ. これは Java の assert や C.class が変換されたコードが SYNTHETIC 属性を持つのと同じ (Java VM Specification に書いてあるらしい).

・コードのインライン展開は,パッケージ可視性や private メンバへのアクセス問題があったのでやめたらしい.

・ロギングなど,処理の有無をオン/オフできるようにする場合, AspectJ ではアドバイス実行のコストが高いので, PCD の if(enabled) -- static boolean enabled; などと書くと,多少改善するらしい.

_ AspectJ

call pointcut はメソッド呼び出し自体にしかマッチしないから,around で call を潰したとしても引数の評価は行われてしまう,らしい.

副作用や,重たい処理を含んだ引数評価があるとはまりそう.

_ AJDT

AspectJ Development Tools の次のメジャーリリースへ向けての方針をどうしよう,というメールが aspectj-dev に投げられていた.

・プロジェクトの前の biuld との差分を参照できるようにしたい

・pointcut wizard の追加

などが新規に入るほか,AspectJEditor なども rewrite するっぽい.また,JDT と競合を避けるために.java には Java ソースだけを記述し.aj に AspectJ ソースを記述するといったことも行うらしい.AJDT 自身を AspectJ で書くっぽいので,その辺に少し期待.

_ ディジタル放送

ケーブルテレビのディジタル放送化の情報が届いていたことに今さら気づいた.

値段が微妙に上がってしまう上,どうせあと1年か2年しか住まないだろうし,ということで見送る方針.


2005-11-05

_ [hyCalendar] スタートアップ時の起動エラーへの対処

hyCalendar は WndProc 内で Screen.ActiveWindow にアクセスしているが,Windows XP での起動直後は Screen.ActiveWindow = nil になることがあって,それで起動時にエラーが起きていた様子.

とりあえず修正版を公開.他に追加する機能がまだあるので 1.3.1 リリースまでまだ少し時間がかかりそう.


2006-11-05

_ [Java] Extensible Java Profiler を試してみた

JDK 1.4 で動くプロファイラがほしくてExtensible Java Profilerを試してみた. 別に何でも良かったのだけど,@ITの記事 で紹介されていたプロファイラの中で,最新版が一番新しかったから選んでみた.(1.5用ならこんなのとかがある)

lib/tracer.dll にパスを通して -Xruntracer で実行すると,スレッドごととおぼしき *.ejp ファイルが生成されるので,それを presenter.bat で起動するツールに読ませる.出力結果はメソッド呼び出しの履歴(コールツリー)に時間情報が付加されているだけのシンプルなUIなので,使う段階で迷うことは特になし.

Extensible というのは,どうやら色々なフィルタを噛ませて閲覧できるという点らしい.メソッドごとに時間積算するぐらいで十分だけど…….

このツールは,どうもログファイルの肥大化が目立つ気がする.積極的にライブラリなどを排除しておかないと,すぐ数百MB,下手するとGB単位のファイルになってしまう.「後からプロファイル結果を加工する」という考え方をしてるので,JVM からデータを取っている段階でデータ量を減らせないというのが不利に働いている気がする.適用対象のプログラムがやたらと多数のオブジェクトを使ってたせいかもしれないけれど.

大規模な入力に対しては,このツールだと太刀打ちできなかったので, System.getCurrentMillis あたりを使っての簡易時間計測で済ませることにした.