为什么一个简单的JavaRMI调用会导致CPU峰值和GC?

为什么一个简单的JavaRMI调用会导致CPU峰值和GC?,java,garbage-collection,Java,Garbage Collection,我使用中提到的步骤和程序创建了一个简单的RMI服务器和客户端 当我评测(使用YourKit)客户机程序(ClientRequest.java)时,我看到CPU的峰值(大约10%的使用率)和GC。我很好奇为什么这个简单的程序会导致GC。还有大量堆内存可用 我可以在分析器中看到“RMI更新清理”和“RMI调度程序”线程。这些线程是否导致了GC?我想知道为什么一个简单的RMI调用会导致GC。有人能提供一些意见吗?我在这里附上了您的工具包快照: 我尝试在internet上搜索,但找不到任何相关内容。R

我使用中提到的步骤和程序创建了一个简单的RMI服务器和客户端

当我评测(使用YourKit)客户机程序(ClientRequest.java)时,我看到CPU的峰值(大约10%的使用率)和GC。我很好奇为什么这个简单的程序会导致GC。还有大量堆内存可用

我可以在分析器中看到“RMI更新清理”和“RMI调度程序”线程。这些线程是否导致了GC?我想知道为什么一个简单的RMI调用会导致GC。有人能提供一些意见吗?我在这里附上了您的工具包快照:


我尝试在internet上搜索,但找不到任何相关内容。

RMI调用没有什么“简单”的地方,除了它对开发人员的显示方式。远程引用可以防止在不同的计算机上对引用对象进行垃圾收集。由于通常的触发器不起作用(即,您不知道远程机器是否内存不足),RMI会定期强制执行垃圾收集。