熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> JSP教程 >> 正文

提升Java桌面客戶端程序性能問答

2013-11-15 11:39:28  來源: JSP教程 

  提升Java桌面客戶端程序性能
  Edward Ort在SDN(Sun Developer Network)聊天室主持了一次關於提升Java桌面客戶端程序性能的聊天這次聊天請來了兩位重量級的人物Chet Haase JavaD工程組的關鍵成員;Scott Violet JFC/SWing的架構師
  
  這次聊天主要關注在JFC/SWing/JavaD當前在性能上有哪些提升以及將來的Java版本在這些方面將有什麼改進
  
  下面我們來看一些關鍵的比較有趣的聊天內容
  
  為什麼repaint()刷新時會造成灰色塊?
  Scott Violet: 這是一個非常適時的問題當我們使用AWT/SWing時至少有兩個線程在起作用一個線程負責接收和處理本地事件另一個線程負責分派這些事件(即 EDT)對於本地線程當它接收到一個expose事件會立即用灰色填充背景當事件在EDT中被處理時才開始做實際上的繪制工作這樣的話如果你的程序正在繁忙在顯示灰色塊和實際的繪制之間會有一個顯而易見的延遲有個好消息是我們正在做這方面的改進工作讓每個窗口都有一個緩沖圖像這樣的話當窗口收到一個expose事件我們立即將緩沖區的圖像復制過來並且你的程序不用做任何事情這樣你就再也不會看到灰色塊了甚至於你的程序繁忙時我們照樣能恢復窗口裡的顯示內容我們希望能盡早完成這項工作當我們完成時會將它公布出來
  
  為什麼不把SwingWorker(或者類似的機制)沒有成為標准API? 有什麼建議的方式來處理過程靈敏的任務?
  Scott Violet: 很好的問題 我們就要完成一個版本的SwingWorker它將會是Java的一部分這也就是Igor Brent Bino 和我在去年JavaOne大會上談到的那個版本這個版本的SwingWorker支持property change監聽器 它非常好用
  
  JDNC和JDIC會有什麼新的發展?
  Scott Violet: 這兩個項目一直在健狀的發展 JDNC正向下一個裡程碑邁進它會包含一個login framework 並且修改了data model和binding API
  
  為什麼一定要等到Java而不是以jar形式在中使用?
  Scott Violet: 我想你在提SwingWorker吧 我們正在考慮針對發布一個非綁定的SwingWorker版本 但還沒有作出決定
  
  Resizing窗口為什麼要等到resizing結束後才起作用?
  Scott Violet: 有個好消息是如果你要實時resize窗口 只要簡單的調用ToolkitgetDefaultToolkit()setDynamicLayout(true) 如何相應則依賴於你的程序和窗口內容 我要說我們正在考慮使實時resize特性成為的缺省設置
  
  當開啟個小圖片(x)時 ImageIcon是最好的選擇嗎?或者imageI/O JAI更快些? 這三者在內存使用上有什麼不同嗎?
  Chet Haase: 我知道在我們的ImageIO的jpep加載器有性能上的問題它甚至慢過於老的Toolkit加載器 我不知道這些問題是否已經修復 要確定是否已修復的最好的方法是: 寫一個簡單的microbenchmark程序時間上的不同就可以看出誰好誰壞 我願意看到最終有人選擇ImageIO 但是為了達到目的我們可能會遇到一些瓶項目前我還不知道JAI的性能如何
  
  有打算允許Swing程序能編譯成本地代碼嗎?
  Scott Violet: 我只能說與此最類似的事情就是我們正在考慮讓運行中的各個JVM使用持久化編譯的代碼 每次你運行程序我們都不再編譯大量重復的方法;如果方法已被緩存這會極大的提高運行速度
  
  使用Java 中的Synth經測試發現 Swing程序的啟動時間變慢了該如何避免此問題?
  Scott Violet: 我懷疑慢下來的原因是采用了XML解析器你可以提交一個test case以讓我們可以確定到底發生了什麼事情
  
  有沒可能增加一個dockable framework到Swing?
  Scott Violet: 真干脆 我們看到越來越多的程序要求做到這個功能 我們現在已將這個加進了雖然如此 它不太可能會在之前完成 可能這是太遙遠的事情 钽我們會試著縮短版本發布周期:)
  
  對於常規的Swing組件有什麼改進 比如JTable? 我有一個案子要凍結兩個或更多的Column當前有無簡便的方法?
  Scott Violet: 在我們要加入table排序 加亮顯示和過濾 JDNC現在有這個 但它應該加到內核中才是
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19389.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.