我想描述基于RMI的应用程序的网络开销。例如,我很有兴趣知道存根通过网络传输了多少字节,或通过它完成了多少方法调用。但是,我无法在RMI API中找到任何内容。这有可能吗?
答案 0 :(得分:1)
我不是特别喜欢RMI,并且发现基于JSon,Thrift甚至XML-RPC更容易使用。但是,有时我们没有选择。
在jdk7 / jdk存储库的“test”树中有一个用于RMI的微基准套件以及对象序列化,请参阅:
jdk/test/java/rmi/reliability/benchmark
剧本:
jdk/test/java/rmi/reliability/scripts/create_benchmark_jars.ksh
显示了如何创建两个用于基准测试的JAR文件。您可以将命令行参数传递给每个实例,以进行特定设置,例如每次运行重复等。(jar的一个实例将作为客户端运行,另一个实例作为服务器运行,也可以从命令行参数配置。)
我自己也没有玩过多少 - 通常信任现有的基准测试,例如:
http://daniel.gredler.net/2008/01/07/java-remoting-protocol-benchmarks
......或者使用诸如此类的工具(我在最后两个方面看不太多):
JMeter(http://jmeter.apache.org/),肥皂石(http://soap-stone.sourceforge.net/)或 JVM-serialisers(https://github.com/eishay/jvm-serializers/wiki/)