Java RMI性能问题 - 优先级一种方法

时间:2013-05-30 16:23:35

标签: java performance rmi

我在java中有一个应用程序,有两个服务(A和B)通过RMI进行通信 服务A可以在B侧激活的方法 服务B可以在A侧激活的6种方法 在这6种方法之间我有一个重要的方法,我正在检查性能, 我正在计算RMI调用之前的时间差,直到另一侧的方法开始(A侧) 时间通常在0-4毫秒左右,但有时候时差会跳到大约40,60甚至100毫秒 题: 1)有没有办法使用RMI优先于其他方法(或线程)? 2)什么会导致这种不稳定? 3)在此类应用中使用RMI可以达到的最佳性能率是多少? 4)其他建议的解决方案?

提前致谢, 波阿斯

1 个答案:

答案 0 :(得分:0)

  

1)有没有办法使用RMI优先于一个方法(或线程)而不是其他方法(或线程)?

无法使RMI方法优先于其他方法。此处也没有任何证据表明它会有任何好处,因为没有证据表明存在争用问题。您可以更改任何线程的优先级,但如果没有争用证据,则没有理由相信它会有所帮助。

  

2)什么会导致这种不稳定?

网络,DNS,两端的负载,网络负载......

  

3)在此类应用中使用RMI可以达到的最佳性能率是多少?

一个毫无意义的问题。什么硬件?什么网络?什么带宽?什么延迟?什么负载?这些方法在空载时本地执行多长时间,或者仅仅是那个负载?

  

4)其他建议的解决方案?

有很多方法可以通过网络进行通信,但它们都会调用网络DNS,带宽,延迟,两端的硬件,负载......所有相同的因素。

RMI性能主要是CPU和带宽方面的序列化性能,以及延迟方面的DNS性能。