国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

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

2019-11-18 13:09:37
字體:
供稿:網(wǎng)友

  提升java桌面客戶端程序性能
  2月15日,Edward Ort在SDN(Sun Developer Network)聊天室主持了一次關(guān)于提升Java桌面客戶端程序性能的聊天,這次聊天請來了兩位重量級的人物:Chet Haase, Java2D工程組的要害成員;Scott Violet, JFC/SWing的架構(gòu)師。
  
  這次聊天主要關(guān)注在JFC/SWing/Java2D當前在性能上有哪些提升,以及將來的Java版本在這些方面將有什么改進。
  
  下面我們來看一些要害的、比較有趣的聊天內(nèi)容。
  
  為什么repaint()刷新時會造成灰色塊?
  Scott Violet: 這是一個非常適時的問題。當我們使用AWT/SWing時,至少有兩個線程在起作用:一個線程負責接收和處理本地事件,另一個線程負責分派這些事件(即 EDT)。對于本地線程,當它接收到一個eXPose事件,會立即用灰色填充背景,當事件在EDT中被處理時才開始做實際上的繪制工作。這樣的話假如你的程序正在繁忙,在顯示灰色塊和實際的繪制之間會有一個顯而易見的延遲。有個好消息是我們正在做這方面的改進工作,讓每個窗口都有一個緩沖圖像,這樣的話,當窗口收到一個expose事件,我們立即將緩沖區(qū)的圖像復(fù)制過來,并且你的程序不用做任何事情。這樣你就再也不會看到灰色塊了,甚至于你的程序繁忙時,我們照樣能恢復(fù)窗口里的顯示內(nèi)容。我們希望能盡早完成這項工作,當我們完成時會將它公布出來。
  
  為什么不把SwingWorker(或者類似的機制)沒有成為標準API? 有什么建議的方式來處理過程靈敏的任務(wù)?
  Scott Violet: 很好的問題. 我們就要完成一個版本的SwingWorker,它將會是Java1.6的一部分。這也就是Igor, Brent, Bino 和我在去年JavaOne大會上談到的那個版本。這個版本的SwingWorker支持PRoperty change監(jiān)聽器. 它非常好用.
  
  JDNC和JDIC會有什么新的發(fā)展?
  Scott Violet: 這兩個項目一直在健狀的發(fā)展. JDNC正向下一個里程碑邁進,它會包含一個login framework, 并且修改了data model和binding API.
  
  為什么一定要等到Java1.6,而不是以jar形式在1.5中使用?
  Scott Violet: 我想你在提SwingWorker吧. 我們正在考慮針對1.5發(fā)布一個非綁定的SwingWorker版本, 但還沒有作出決定.
  
  Resizing窗口為什么要等到resizing結(jié)束后才起作用?
  Scott Violet: 有個好消息是,假如你要實時resize窗口, 只要簡單的調(diào)用Toolkit.getDefaultToolkit().setDynamicLayout(true). 如何相應(yīng)則依靠于你的程序和窗口內(nèi)容. 我要說我們正在考慮使實時resize特性成為1.6的缺省設(shè)置.
  
  當開啟1000-10000個小圖片(120x100)時, ImageIcon是最好的選擇嗎?或者imageI/O JAI更快些? 這三者在內(nèi)存使用上有什么不同嗎?
  Chet Haase: 我知道,在我們1.4的ImageIO的jpep加載器有性能上的問題,它甚至慢過于老的Toolkit加載器. 我不知道這些問題是否已經(jīng)修復(fù). 要確定是否已修復(fù)的最好的方法是: 寫一個簡單的microbenchmark程序,時間上的不同就可以看出誰好誰壞. 我愿意看到最終有人選擇ImageIO, 但是為了達到目的,我們可能會碰到一些瓶項。目前我還不知道JAI的性能如何.
  
  有打算答應(yīng)Swing程序能編譯成本地代碼嗎?
  Scott Violet: 我只能說,與此最類似的事情就是,我們正在考慮讓運行中的各個JVM使用持久化編譯的代碼, 每次你運行程序我們都不再編譯大量重復(fù)的方法;假如方法已被緩存,這會極大的提高運行速度.
  
  使用Java 1.5中的Synth,經(jīng)測試發(fā)現(xiàn), Swing程序的啟動時間變慢了,該如何避免此問題?
  Scott Violet: 我懷疑慢下來的原因是采用了xml解析器。你可以提交一個test case以讓我們可以確定到底發(fā)生了什么事情。
  
  有沒可能增加一個"dockable" framework到Swing?
  Scott Violet: 真干脆. 我們看到越來越多的程序要求做到這個功能. 我們現(xiàn)在已將這個加進了1.6,雖然如此, 它不太可能會在1.7之前完成. 可能這是太遙遠的事情, 鉭我們會試著縮短版本發(fā)布周期:)
  
  對于常規(guī)的Swing組件有什么改進, 比如JTable? 我有一個案子要'凍結(jié)'兩個或更多的Column,當前有無簡便的方法?
  Scott Violet: 在1.6中,我們要加入table排序, 加亮顯示和過濾. JDNC現(xiàn)在有這個, 但它應(yīng)該加到內(nèi)核中才是.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 肇庆市| 奈曼旗| 南木林县| 安国市| 华阴市| 米泉市| 杂多县| 北碚区| 宁武县| 许昌市| 阿克苏市| 抚远县| 南川市| 枝江市| 明溪县| 无为县| 徐汇区| 江安县| 乐平市| 密云县| 淅川县| 垫江县| 北京市| 偃师市| 尼玛县| 治县。| 临邑县| 从江县| 西吉县| 万全县| 和林格尔县| 赤水市| 光山县| 黑龙江省| 会昌县| 乐亭县| 宝丰县| 蓬溪县| 鄂温| 小金县| 西平县|