我試圖提高在Linux上運行的Web應用程序中驗證碼圖像呈現的性能。看看目前使用的是什麼,我發現瓶頸在於使用Java2D,特別是Graphics2D類。如何讓圖像生成在Java上可擴展?
問題不在於執行速度,而在於可擴展性。基本上它不會縮放。在1個線程或2個線程中繪製驗證碼圖像在執行時間方面沒有任何改進。
作爲一個例子,你可以看看下面這個爲captcha圖像創建背景的類。這個問題上的調用出現的Graphics2D ::的setColor()和Graphics2D的::的drawLine():
一些google搜索後,我發現其中的話題說的Java2D是不是特別多線程(對不起,不允許給出多個鏈接:)但是,如果google爲'java2d multithreading',那麼你可以很容易地找到該主題,這將是第一個結果)
我相信必須有一些庫提供繪圖功能沒有找到它:(或Java2d,可能,可以切換到某種模式,這不會阻止對圖形對象的訪問(順便說一下,無頭模式並沒有幫助)。
我會很感激任何建議。事先,感謝您的答案。
FWIW第一次打我時得到google搜索是關於寫來自多個線程的相同graphics2D對象。不是關於每個人都有自己的情況。 – wds 2010-10-13 11:47:18
http://forums.sun.com/thread.jspa?threadID=5415900這裏是引語 - 「經過一些Google搜索後,我發現這篇四年前的文章談論java的OGL管道,只允許在單個線程上呈現(如java 1.6)。」 – Stas 2010-10-13 17:25:45