トップ «前の日記(2004-06-24) 最新 次の日記(2004-06-26)» 編集

jFD開発したりしなかったり日誌

2004|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|
2004年
6月
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

2004-06-25 [長年日記]

_ 面接受けてきました

8月からの仕事の面接を受けてきた。

面接をしてくれた人、只者じゃないかもしれない。

「ちょっと質問したいことがあるんですが」

と聞かれて、今までのプロジェクトのことかと思ったら

「無記名クラスっていつ使うんですか?」

ふぉ?

「うちのプログラマがわからないでいるんですよ」

とは言っていたが、試されていたような気が。

僕は以前まで無記名クラス反対派だったんだけど、最近C#を触ってから

考えが変わって、比較的抵抗無く使うようになっている。

しばらく悩んで自分の使い分けを整理してみたのだが、

通常の用途なら通常のクラス、そのクラス内でしか使われないのが

わかっているのならインナークラス、メソッド内でしか使われないのが

わかっているのなら無記名クラス、と使い分ければよいのではないか、

という風に答えたのだが、けっこう鋭い質問だと思った。

僕の回答だと、カプセル化ということを理解していることがわかる。

けっこう力量がわかるのではないだろうか。

こういう質問するってことは、技術の勘所をわかった会社なのかもしれない、

やってみようか、と思ったが、案件が鎌倉なんだよなあ。

遠いよ。

_ jFD2

どこかに巨大なボトルネックがある模様。

ディレクトリがでかくなるほどページ切り替えの動作が

もっさりしてきて、C:\WINNT\SYSTEM32あたりだと重くて使い物にならない。

探せえええぇぇぇぇぇ

_ あー

jFD2の重くなる原因発見。

結局Javaの実装のせいだった。

まだファイル表示の表示内容切り替えを実装してないのだが、

そのために常にファイル名、ファイルサイズ、タイムスタンプを常に表示していて、

新しいページが表示されるたびにそこら辺の属性を取得しにいっている。

ところがタイムスタンプの取得はどうにもコストが高く、たとえば25行2列の表示なら

50個のファイルのタイムスタンプ取得が発生するので問題になっていたようだ。

ちょっとサンプルを書いてみたがこんな風になった。

File file = new File("c:\\winnt\system32");
File[] children = file.listFiles();
long start = System.currentTimeMillis();
for(int i=0; i < children.length; i++) {
	children[i].lastModified();
}
System.out.println(System.currentTimeMillis() - start);

_ 数回実行してみたが、30〜40秒かかっている。

そりゃ動作ももっさりするわ。

通常、ファイル名を大きく表示するためにタイムスタンプの表示を

行わないようにしてるので今まで問題になってないだけだった。

結局、対策はK.Takata氏のFastFile方式以外ありえないようだ。

本日のリンク元
アンテナ
その他のリンク元
検索