I’ve designed two scenarios to investigate three remoting protocols that
said to have good performance, XML protocols are excluded.
XML protocols are born to be slower than the native RMI and some light weight http based protocols like HttpInvoker and Hessian, etc.
It seems HttpInvoker has a bit performance advantage over RMI, the tests are carried out on two different hosts in a LAN network. The server side is a 1.8GHz CPU, 1G Memory PC, the client side is a 1.8GHz, 1.5G memory notebook.
Scenario 1:
It simulates the publish process of app which transfers lots of Objects.
Total Requests processes
1minute/10k Objects
|
RMI
|
HttpInvoker
|
Hessian
|
10Con-Requests
|
2039
|
2111
|
809
|
20Con-Requests
|
2376
|
2543
|
864
|
30Con-Requests
|
2855
|
2840
|
924
|
50Con-Requests
|
3207
|
3079
|
976
|
100Con-Requests
|
3581
|
3832
|
1260
|
Average Response Time
1minute/10k Objects
|
RMI
|
HttpInvoker
|
Hessian
|
10Con-Requests
|
0.288
|
0.278
|
0.772
|
20Con-Requests
|
0.438
|
0.473
|
1.509
|
30Con-Requests
|
0.649
|
0.666
|
2.188
|
50Con-Requests
|
0.968
|
1.008
|
3.720
|
100Con-Requests
|
1.731
|
1.602
|
6.569
|
Scenario 2:
It simulates business logic which spends 500 miliseconds.
Total Requests processes
1minute/10k Objects
|
RMI
|
HttpInvoker
|
Hessian
|
10Con-Requests
|
1000
|
1141
|
221
|
20Con-Requests
|
1889
|
2267
|
258
|
30Con-Requests
|
299
|
3407
|
289
|
50Con-Requests
|
4743
|
5472
|
369
|
100Con-Requests
|
4743
|
10389
|
538
|
Average Response Time
1minute/10k Objects
|
RMI
|
HttpInvoker
|
Hessian
|
10Con-Requests
|
0.592
|
0.522
|
6.012
|
20Con-Requests
|
0.625
|
0.522
|
6.012
|
30Con-Requests
|
0.589
|
0.521
|
8.907
|
50Con-Requests
|
0.62
|
0.542
|
14.086
|
100Con-Requests
|
0.620
|
0.558
|
28.275
|
Resources:
1) Middleware remoting protocol migration -------http://blog.nominet.org.uk/tech/2007/03/13/middleware-remoting-protocol-migration/
2) http://www.devx.com/Java/Article/27300/1954 -------New Protocol Offers Simple, Efficient Java RMI
3) Java Remoting: Protocol Benchmarks - ------http://q.sohu.com/forum/5/topic/1148909
分享到:
相关推荐
### .NET Remoting 学习笔记 #### 一、概念 .NET Remoting 是一种用于分布式对象通信的技术,它允许在不同的应用程序域之间进行对象交互。简单来说,它是一种升级版的 DCOM(分布式组件对象模式),针对 .NET 平台...
C# Remoting是一种在.NET Framework 2.0中实现分布式应用程序的技术,它允许对象在不同的应用程序域(AppDomains)之间进行交互,甚至可以跨越网络。这个"聊天室"项目是利用C# Remoting来创建一个客户端-服务器架构...
Remoting技术是.NET框架中的一种远程通信机制,它允许对象在不同的应用程序域(AppDomain)之间进行交互,甚至是跨越网络。这项技术对于构建分布式应用程序、实现服务器组件的透明调用非常有帮助。在这个"remoting...
Remoting是.NET Framework提供的一种远程通信技术,它允许对象在不同的应用程序域(AppDomain)之间进行交互,甚至跨越网络。这个“使用Remoting编写聊天程序”的主题,将深入讲解如何利用Remoting构建一个简单的...
C# Remoting是.NET框架中一个强大的特性,用于在分布式环境中实现跨进程、跨网络的通信。它允许对象在不同的应用程序域(AppDomain)之间透明地进行交互,无论是位于同一台计算机还是网络上的不同计算机。在这个场景...
Remoting TCP双向通信是一种在分布式系统中实现高效、可靠数据交换的技术。在.NET框架中,Remoting提供了一种跨进程甚至跨计算机的通信机制,允许对象在不同的应用程序域(AppDomain)之间透明地调用方法。TCP...
C# Remoting是.NET Framework提供的一种机制,它允许在不同应用程序域(AppDomains)之间进行对象的透明通信,甚至跨越不同的进程或机器。这个“c# remoting简单例子”旨在帮助初学者理解Remoting的基本概念和工作...
Remoting双向通信是一种在.NET Framework中实现客户端与服务器之间高效、灵活的数据交换技术。这个"Remoting双向通信v1.0"可能是一个实现双向通信的软件包或框架,旨在简化远程对象调用的过程,使应用程序能够实时地...
Remoting服务是.NET框架中的一种高级通信机制,它允许对象在不同的进程甚至不同的计算机之间进行交互,仿佛它们是在同一环境中。这个技术的核心理念是透明性,即开发者无需关心对象的实际位置,只需像调用本地对象...
.NET Remoting是微软.NET框架提供的一种技术,用于在不同的应用程序域(AppDomain)之间进行通信,无论是同一台机器上的还是跨网络的。这种技术在分布式系统开发中扮演着重要角色,使得不同进程甚至不同计算机之间的...
VB.NET Remoting是微软.NET Framework中的一个重要特性,它允许开发者创建可以跨进程甚至跨网络通信的对象。这个技术的核心思想是使对象能够在不同的应用程序域(AppDomain)之间共享和交互,从而打破了传统对象只能...
VB.NET Remoting是.NET Framework提供的一种强大的分布式计算技术,它允许对象在不同的应用程序域(AppDomain)之间进行通信,甚至可以跨越网络。本手册将深入探讨这一技术,帮助开发者理解和应用VB.NET Remoting来...
本系列文章将简单介绍Remoting的一些基本概念,包括 应用程序域、Remoting构架、传值封送(Marshal by value)、传引用封送(Marshal by reference)、Remoting的基本操作、分离服务程序元信息和实现、在Windows Service...
VB.NET Remoting是.NET框架中的一种核心技术,它允许在不同应用程序域(AppDomain)之间进行对象间的通信,甚至是跨越网络的通信。这个技术为分布式应用提供了强大的基础,使得开发者能够构建可扩展、高性能且安全的...
Remoting事件,特别是服务端广播的改进,是.NET Framework中一项关键的技术,它允许应用程序进行跨进程甚至跨网络的通信。这项技术的核心在于提供了一种透明的方式,使得对象可以像在本地内存中一样在远程进程中操作...
**C# Remoting 入门示例** C# Remoting是.NET Framework中提供的一种技术,它允许对象在不同的应用程序域(AppDomain)之间进行通信,甚至可以跨越不同的进程或网络。这种技术对于分布式系统和多层应用开发尤其有用...
Remoting,全称为.NET Remoting,是微软.NET框架提供的一种技术,用于在不同的应用程序域(AppDomains)之间进行通信,即使这些域分布在不同的进程或计算机上。它为开发者提供了灵活的远程方法调用(RPC)机制,使得...