nogの日記: インスタンスの作成
日記 by
nog
ImageViewerのサムネイルの作成は以下のように作ってた
- ディレクトリ内の全てのサムネイルを作成。一つあたりに選択用リスナーとタイトルボーダーを追加
- JScrollPaneの実際に見えている領域のサムネイルの作成。一つあたりに選択用リスナーとタイトルボーダーを追加
- JScrollPaneの実際に見えている領域のサムネイルの作成。一つあたりに選択用リスナーとエンプティボーダーを追加
- JScrollPaneの実際に見えている領域のサムネイルの作成。見えているサムネイルに選択用リスナーとエンプティボーダーを追加
まず、何も考えないで1番を作成。ある意味富豪プログラミングってことで会社のWindowsマシンでは何ともないがPowerBook G4ではつらいものがあった。そこで2番だが、苦労した割にはあまり成果がなかった。これはマジックナンバーで数値決めうちのコードがあるのでまだまだ煮詰めないと行けない部分もある。
そして今日、暇つぶしにサムネイルのボーダーでいいのがないか試してみると、3番のエンプティボーダーで体感できるほど早くなった。サムネイルに対する処理を減らすだけで効果があることにヒントを得て、4番の実際に見えているサムネイルにだけリスナーを追加したところ、さらに体感できるほど早くなった。
あたらめてインスタンスの作成はコストがかかるんだな、って思いました。2番なんか見当違いの最適化なのかもしれませんが、実際には4番へとつながるから消す訳にもいかないんだよなぁ。
変更したことによって新たな問題(フォーカスをリクエストしたとき区別がつくか?など)もありそうですが、パフォーマンスがあがったことに関しては満足。
インスタンスの作成 More ログイン