Java sun.rmi.server.LoaderHandler.urlsToPath()占用大量CPU
我正在尝试优化一个可以打很多RMI电话的应用程序。据JProfiler称,超过30%的CPU时间花在Java sun.rmi.server.LoaderHandler.urlsToPath()占用大量CPU,java,performance,rmi,Java,Performance,Rmi,我正在尝试优化一个可以打很多RMI电话的应用程序。据JProfiler称,超过30%的CPU时间花在sun.rmi.server.LoaderHandler.urlsToPath()方法上,该方法显然在封送过程中被调用。此方法调用URL.toExternalForm() 这正常吗?我还没有弄清楚哪些对象被精确序列化,但这似乎是一个奇怪的瓶颈 LoadHandler.urlsToPath()的用途是什么?我可以做些什么来减少它的使用量?我在谷歌搜索“sun.rmi.server.LoaderHan
sun.rmi.server.LoaderHandler.urlsToPath()
方法上,该方法显然在封送过程中被调用。此方法调用URL.toExternalForm()
这正常吗?我还没有弄清楚哪些对象被精确序列化,但这似乎是一个奇怪的瓶颈
LoadHandler.urlsToPath()
的用途是什么?我可以做些什么来减少它的使用量?我在谷歌搜索“sun.rmi.server.LoaderHandler.java”时发现了这一点
简单地说,这就是对字符串的抨击。您需要查看应用程序调用它的上下文,以了解为什么经常调用它,但这很可能是执行大量RMI调用的直接结果。如果是这样,解决方案将是减少RMI调用,或者使用RMI以外的其他方法
/**
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) {