- PR -

JDK1.4のswing

1
投稿者投稿内容
びしばし
大ベテラン
会議室デビュー日: 2002/03/13
投稿数: 181
投稿日時: 2002-03-13 22:02
びしばしともうします。

JDK1.4ですが、swing関係が重くなったように感じたのですが、私の気のせいでしょうか?

とくにJFileChooserがダイアログが開くまでものすごく遅く、ディレクトリ移動ももたもたします。
ほかのswing系も動作が重く感じられます。
JDK1.4用になにか書き換える必要があるのを見落としているのでしょうか?

OSはWindowsXPです。もちろんJDK1.4のjavacでコンパイルし直しても現象は同様です。
ToGo
常連さん
会議室デビュー日: 2002/03/16
投稿数: 46
投稿日時: 2002-03-19 00:42
小さなプログラムで使用している限り、以前のJDKに比べて重くなった
という感じは受けませんでした。
最初の1回目にJFileChooserダイアログを開くときは少々待ちます。
ディレクトリ内に大量のファイルがあるような場所へ移動するときも
時間がかかっています。
JDK1.4のdemoに含まれるSwingSet2を実行しての動作はどうでしょうか?
これがかなり重いとなると環境といった他の要因(ウィルス監視アプリが
常駐している等)があるかもしれません。

OSはWindows2000で、CPUはPentium3 500MHz、グラフィックスカードは
ちょっと昔の世代のBansheeです。
BBC
常連さん
会議室デビュー日: 2002/03/15
投稿数: 37
お住まい・勤務地: 東京
投稿日時: 2002-03-20 13:27
特に書き換える必要は無いと思います。
が、若干負荷が高くなった処理は(部分的に)あります。

JFileChooserのダイアログは重い処理のひとつですが、
デフォルトの状態で開く分には以前の1.3台と変わらないと思います。

Swingは全体的に高速化が図られています(JScrollPane等は顕著)。
個人的によく利用するテキスト編集系にもその傾向が良く現れていますが、
IMEの初回呼び出し→1文字目の入力には大きなオーバーヘッドがかかっています。
(ただその分入力時のイベントは快適になっていますが)

Swingで大きなアプリケーションといえばジャストシステムのJustArkですが、
1.3までのバージョンでは、設定用のダイアログを開くことすら出来なかったのが、
普通に編集することが出来るようになっているので、バージョンアップで
低速化したとは考えずらいです。

----------
ちなみに自宅のプアな環境(MMX Pentium 233MHz, メモリ 96M Windows98)の場合、
JFileChooserダイアログが開くのに5秒前後かかります。
仕事場の環境では(Pentium III 650MHz メモリ 128M Windows2000)、
1秒前後で開きますし、その他の処理もストレスなく利用できている事を考えると、
ロースペックのマシンでは厳しいのか?と考えたりします。
----------
びしばし
大ベテラン
会議室デビュー日: 2002/03/13
投稿数: 181
投稿日時: 2003-05-09 16:17
どうも、しばらくです。

JDK1.4.0、1.4.1 では重かったりイベントをスカしたりと Swing がダメダメで使う気が起きないほどでしたが、
JDK1.4.2β になってからはかなり改善されました。とくにイベントをスカすことがなくなり、一応「まっとうに」使える感じです。
1.4.2 の正式版を待って、1.4.x 系に乗り換えようと思います。
Kissinger
ぬし
会議室デビュー日: 2002/04/30
投稿数: 428
お住まい・勤務地: 愛知県
投稿日時: 2003-05-22 23:18
1.4.2では、場合によっては JFileChooserが 300倍速くなるのだそうです。
http://java.sun.com/j2se/1.4.2/docs/guide/swing/1.4/Post1.4.html#1.4.2
今まで何やってたんだろう。
びしばし
大ベテラン
会議室デビュー日: 2002/03/13
投稿数: 181
投稿日時: 2003-05-23 12:36
情報ありがとうございます。

そうですね、測ったことはありませんが JFileChooser は確かに1.4.2βで速くなりました。
1.3.x では遅いと思わなかったので、単に 1.4.1 までの実装がダメダメだっただけかもしれませんけれど...。
_________________
1

スキルアップ/キャリアアップ(JOB@IT)