2010-01-18 79 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以外的其他方法。