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

首頁 > 學院 > 開發設計 > 正文

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

2019-11-18 13:44:43
字體:
來源:轉載
供稿:網友

  提升java桌面客戶端程序性能
2月15日,Edward Ort在SDN(Sun Developer Network)聊天室主持了一次關于提升Java桌面客戶端程序性能的聊天,這次聊天請來了兩位重量級的人物:Chet Haase, Java2D工程組的要害成員;Scott Violet, JFC/SWing的架構師。

這次聊天主要關注在JFC/SWing/Java2D當前在性能上有哪些提升,以及將來的Java版本在這些方面將有什么改進。

下面我們來看一些要害的、比較有趣的聊天內容。



為什么repaint()刷新時會造成灰色塊?
Scott Violet: 這是一個非常適時的問題。當我們使用AWT/SWing時,至少有兩個線程在起作用:一個線程負責接收和處理本地事件,另一個線程負責分派這些事件(即 EDT)。對于本地線程,當它接收到一個eXPose事件,會立即用灰色填充背景,當事件在EDT中被處理時才開始做實際上的繪制工作。這樣的話假如你的程序正在繁忙,在顯示灰色塊和實際的繪制之間會有一個顯而易見的延遲。有個好消息是我們正在做這方面的改進工作,讓每個窗口都有一個緩沖圖像,這樣的話,當窗口收到一個expose事件,我們立即將緩沖區的圖像復制過來,并且你的程序不用做任何事情。這樣你就再也不會看到灰色塊了,甚至于你的程序繁忙時,我們照樣能恢復窗口里的顯示內容。我們希望能盡早完成這項工作,當我們完成時會將它公布出來。



為什么不把SwingWorker(或者類似的機制)沒有成為標準API? 有什么建議的方式來處理過程靈敏的任務?
Scott Violet: 很好的問題. 我們就要完成一個版本的SwingWorker,它將會是Java1.6的一部分。這也就是Igor, Brent, Bino 和我在去年JavaOne大會上談到的那個版本。這個版本的SwingWorker支持PRoperty change監聽器. 它非常好用.



JDNC和JDIC會有什么新的發展?
Scott Violet: 這兩個項目一直在健狀的發展. JDNC正向下一個里程碑邁進,它會包含一個login framework, 并且修改了data model和binding API.



為什么一定要等到Java1.6,而不是以jar形式在1.5中使用?
Scott Violet: 我想你在提SwingWorker吧. 我們正在考慮針對1.5發布一個非綁定的SwingWorker版本, 但還沒有作出決定.



Resizing窗口為什么要等到resizing結束后才起作用?
Scott Violet: 有個好消息是,假如你要實時resize窗口, 只要簡單的調用Toolkit.getDefaultToolkit().setDynamicLayout(true). 如何相應則依靠于你的程序和窗口內容. 我要說我們正在考慮使實時resize特性成為1.6的缺省設置.



當開啟1000-10000個小圖片(120x100)時, ImageIcon是最好的選擇嗎?或者imageI/O JAI更快些? 這三者在內存使用上有什么不同嗎?
Chet Haase: 我知道,在我們1.4的ImageIO的jpep加載器有性能上的問題,它甚至慢過于老的Toolkit加載器. 我不知道這些問題是否已經修復. 要確定是否已修復的最好的方法是: 寫一個簡單的microbenchmark程序,時間上的不同就可以看出誰好誰壞. 我愿意看到最終有人選擇ImageIO, 但是為了達到目的,我們可能會碰到一些瓶項。目前我還不知道JAI的性能如何.



有打算答應Swing程序能編譯成本地代碼嗎?
Scott Violet: 我只能說,與此最類似的事情就是,我們正在考慮讓運行中的各個JVM使用持久化編譯的代碼, 每次你運行程序我們都不再編譯大量重復的方法;假如方法已被緩存,這會極大的提高運行速度.



使用Java 1.5中的Synth,經測試發現, Swing程序的啟動時間變慢了,該如何避免此問題?
Scott Violet: 我懷疑慢下來的原因是采用了xml解析器。你可以提交一個test case以讓我們可以確定到底發生了什么事情。



有沒可能增加一個"dockable" framework到Swing?
Scott Violet: 真干脆. 我們看到越來越多的程序要求做到這個功能. 我們現在已將這個加進了1.6,雖然如此, 它不太可能會在1.7之前完成. 可能這是太遙遠的事情, 鉭我們會試著縮短版本發布周期:)



對于常規的Swing組件有什么改進, 比如JTable? 我有一個案子要'凍結'兩個或更多的Column,當前有無簡便的方法?
Scott Violet: 在1.6中,我們要加入table排序, 加亮顯示和過濾. JDNC現在有這個, 但它應該加到內核中才是.



全部聊天內容請看: Getting High Performance from Your Desktop Client

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 曲阜市| 罗定市| 招远市| 镇平县| 淮南市| 密云县| 通海县| 宜君县| 吉隆县| 房产| 舟山市| 醴陵市| 平遥县| 讷河市| 宁国市| 丹东市| 石嘴山市| 沧源| 灵石县| 冷水江市| 易门县| 瑞昌市| 探索| 芜湖县| 垣曲县| 泰安市| 临沂市| 驻马店市| 拜城县| 师宗县| 定远县| 北流市| 乐昌市| 卢湾区| 于田县| 鞍山市| 布拖县| 泰宁县| 寻乌县| 文成县| 孟州市|