2010-01-18 99 views
0

我試圖優化一個應用程序,使得大量的RMI調用。根據JProfiler,超過30%的CPU時間花費在sun.rmi.server.LoaderHandler.urlsToPath()方法中,這在編組期間顯然會被調用。此方法調用URL.toExternalForm()sun.rmi.server.LoaderHandler.urlsToPath()需要大量的CPU

這是正常的嗎?我還沒有弄清楚哪些對象正在被序列化,但它似乎是一個奇怪的瓶頸。

LoadHandler.urlsToPath()的用途是什麼?我該怎麼做才能減少它的使用量?

回答

0

我發現這與谷歌搜索「sun.rmi.server.LoaderHandler.java」

    /** 
0795:    * Convert an array of URL objects into a corresponding string 
0796:    * containing a space-separated list of URLs. 
0797:    * 
0798:    * Note that if the array has zero elements, the return value is 
0799:    * null, not the empty string. 
0800:    */ 
0801:   private static String urlsToPath(URL[] urls) { 

簡單來說它就是字符串撲。你需要看看你的應用程序調用這個函數的上下文來弄清楚它爲什麼會被頻繁調用,但是這可能是做大量RMI調用的直接結果。如果是這樣,解決方案將是減少RMI調用,或使用RMI以外的其他方法。