sun.rmi.server.LoaderHandler.urlsToPath()需要大量的CPU

时间:2010-01-18 10:10:28

标签: java performance rmi

我正在尝试优化一个能够进行大量RMI调用的应用。根据JProfiler的说法,超过30%的CPU时间用在sun.rmi.server.LoaderHandler.urlsToPath()方法中,显然在编组期间被调用。此方法调用URL.toExternalForm()

这是正常的吗?我还没有弄清楚哪些对象是完全序列化的,但它似乎是一个奇怪的瓶颈。

LoadHandler.urlsToPath()的目的是什么,我该怎么做才能减少其使用?

1 个答案:

答案 0 :(得分:0)

我发现这是Google搜索“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以外的其他东西。