我們正在構建/維護一個複雜的運動控制平臺控制應用程序,其中包含14個子系統,每個子系統都有自己的線程,包括多個動態2D或3D窗口。舊版要求要求在Windows(XP或7)之上,運行在具有Java3D 1.5.2的Java jre6 jdk1.6.0_21之上的JRuby 1.5.2。JRuby/Java Swing Tooltip重疊窗口框架將顯示速度降至4 Hz
當2D控制面板窗口,空佈局的一個一個的Java Swing工具提示彈出,重疊&底部邊緣或有時在窗口的右側邊緣,整體的Windows的Java畫面更新率外時(所有窗口)從16赫茲降低到4赫茲。通常這種效果會一直持續,直到其中一個窗口被調整大小。有時這種效果在工具提示消失時消失。偶爾,效果不會發生。
這在32位Windows XP和64位Windows 7上都會出現,指向更多的Java。還有其他一些有趣的錯誤,其中Windows休眠時鐘實際上在隨機無關的第三方通信應用程序正在運行時加速,但我認爲這是一個紅鯡魚 - 這絕對是Java + Windows窗口布局錯誤。最好的猜測是Windows無法處理Java快速調整有效窗口區域的大小?但是,爲什麼即使在工具提示彈出消失之後效果仍會繼續?
一個來源報告改進,確保所有工具提示「寬於150像素」。這是一種解決方法,雖然:由於該錯誤的機制尚不清楚,並且該錯誤是隨機的,所以這種有用的巫術似乎不能保證解決方案;它也排除了簡短的工具提示。
有誰知道爲什麼JRuby/Java/Swing/Windows的這種組合存在工具提示問題,以及對此可以做些什麼呢?
請什麼理由在本地操作系統下使用頻率的延遲,我覺得> = 25-33 – mKorbel
這些都是實際來自Java真正在做什麼的測量,而不是我們設定的。然而,在一個具有簡單的基本70年代2D按鈕控制面板的實時控制系統中,沒有理由刷新過去的16Hz,這肯定會爲系統負載增加安全餘量。滾動示波器在16Hz仍然正常。但是,當Java給我們4Hz時,示波器是相當不可接受的。 – DragonLord
同意,在Win8沒有問題,但大多數用戶(如你所說的Win7/32)運行在Win7(企業平臺)/ XP – mKorbel