雑記帳 2007年 7月第4週

2007/07/22 Sun.

敢えて睡眠時間を短く抑えて14時に起きる。メシを外で食って、携帯の資料集めに某ショップへ。カタログだけ頂く事に。
親父の携帯を解約したいんだけど、あれハッピーボーナス付けてんだよね、更新時期は今頃だと思うんだけど非常にシビア。
更新期間外で解約とかすると1万円かかるし、明日もショップで実際に確認した方がいいな。早く切り上げられるよう努力だ。

2007/07/23 Mon.

今日から設計変更のコーディングを開始。定時の時点で大体半分くらいは仕上げたので、さっさと切り上げて携帯解約へ。
ショップでの解約って手続き一瞬で終わるのね、ハッピーボーナスにより発生した手数料1万円は次回請求分に入るとか。
んで、ついでにパスポートの発行センター(名称知らん)に寄って、更新に何が必要なのかを少しばかり調べていくことに。
写真とかはわかるが、葉書って何に使うんだっけ。あと、最近のパスポートはICチップなんて入ってるのね、変わったもんだ。

2007/07/24 Tue.

バグが出なくて困る。本来なら当然少ない方がいいバグなんですが、試験消化の証憑とするためにバグが必要なのです。
指標値よりも少ないと「本当にちゃんと試験やってんのか」との突っ込みを食らうワケなのです。何つー嫌な世界だろう。
で、自分の担当した機能は運良くバグが非常に少なかったのですが、今になってこれが裏目に出てきて悩まされます。
何とかバグを引きずり出そうとチェック観点を色々と考えてソースレビューしてるんですが、全然摘出されないときたモンだ。
そのくせ、同じ観点で他機能のソースレビューをすると大量に出てくる。どうなってやがる、設計変更取り込めないじゃないか。

2007/07/25 Wed.

出社すると、何故か性能調査が舞い込んできた。調査対象はトレースログ関係。そりゃ数千万回実行される箇所だしな。
プロファイラとかを使って色々と調べてたんだけど、どうもThrowableStackTraceを触る部分が異常にコストが高い模様。
普通にアプリを実行した所要時間のうち、4割近くがトレースログってどういう事よ。ってか、トレースログの設計がアホなのか?
試しに自分の担当機能のトレースログ関係の処理を全て消して実行したら、やはり推測通りに見事に爆速になってくれた。
Java標準メソッドのウェイトも意外に大きい。パッケージだとjava.util.regexを扱う箇所の稼動は予想以上にかかるみたいだ。
そんな調査をやっていたため、今日は設計変更の進捗は一切進まず。まあ、明日でコーディングくらいは完了させとくか。

2007/07/26 Thu.

全ソースコードに対してトレースログ関係の性能改善を一斉に行う。やっぱりこれは避けられない道だったんですかね。
トレースログ出力のメソッドでは、内部にて自前でExceptionを生成して、StackTraceを取得しています。これが遅すぎる。
何でログ出力でExceptionが必要なのか。これは設定ファイルに記述するパッケージごとのログ出力設定に絡んできます。
このパッケージはログ出すけど、こっちは出さないなどの設定が可能なんですが、パッケージがわからないと判定できない。
その為に内部でExceptionを生成して、そこからパッケージを引っ張り出してくるワケです。これって標準的な作りなのか?
で、一日がかりでソースコードを全て修正して、性能改善のエビデンスで「DF」の比較結果を残す。さて、性能測定してみる。
自分が開発を担当していた機能では10,000件のデータを投入して完了までに約7分要していたのが、改善後は35秒になった。
どう見ても14倍速。確かに数千万回と呼ばれるメソッドの呼び出し方を変えれば、これだけ速くなっても不思議は無い。
新人にもこのソースコード修正を任せてたんだけど、共通機能で影響度が超大きいバグを出したヤツがいる。明日処刑だな。

2007/07/27 Fri.

昨日発覚した類のバグが無いかをもう一度精査する必要がありそうなので、今日は丸一日をトレースログ修正関係に充てる。
一応性能が低下していたってのは故障として上げる予定だから、故障対応した結果でバグ出ましたってのは洒落にならん。
担当を割り振ってソースコードを見ながら昨日取った「DF」の比較結果を見つつ、デグレった箇所が無いかを見直していきます。
15時くらいになって全員からの報告が集まり、デグレという程ではないけど性能改善時の修正漏れが数件ほど発覚した。
これの対応を行ってコンパイルを通してjarを作成してから試験環境にて試験走行を行い、問題が無い事を確認。これで終了!
結局この二日間は設計変更の取り込み作業が一切進んでいないじゃないか。トレースログ機能を作ったH松さん、マジ勘弁。

2007/07/28 Sat.

2時に寝て11時に起きるという超健康的生活をしてみたんだけど、15時くらいに何故か睡魔が来て昼寝、起きたら19時。
gadult」から旅行代理店より送られてくるはずの申込書を確認してくれと言われたが、そんなのどこにも来ていないっす。
大してやる事も無い一日だったので、ネットでJavaの性能に関する資料を読みつつ時間を潰して、何と1時にはベッドに入る。