[ZZ]Remoting技术:多线程中IpcChannel的性能太逊
2011-03-30 18:38
141 查看
原文出处:/article/5523861.html
网上都说Ipc通道的速度比Tcp、http通道快,也有相关的测试文章。但我在多线程测试中发现Ipc通道比Tcp慢了差不多20多倍,测试方法是在IIS6中创建Remoting通道,用WAS压力测试工具进行测试。IIS6中Web园设置为100个进程,核心请求队列设置为4000,然后打开WAS并设置1000个线程,每个线程2个连接。点击启动。
private void Form1_Load(object sender, EventArgs e)
private void Form1_Load(object sender, EventArgs e)
远程代理类部分代码,
Code
protected void Page_Load(object sender, EventArgs e)
{
string testL=new string (' ',36*8);
SayHello sh;
IpcChannel channel = null;
string Identity=Request.QueryString["name"]??new Random().Next(10000000).ToString();
if (ChannelServices.RegisteredChannels.Length == 0)
{
BinaryServerFormatterSinkProvider sfsp = new BinaryServerFormatterSinkProvider();
sfsp.TypeFilterLevel = TypeFilterLevel.Full;
Hashtable props = new Hashtable();
props["portName"] = "ChatClient";
props["authorizedGroup"] = "Everyone";
channel = new IpcChannel (props, null, sfsp);
ChannelServices.RegisterChannel(channel, false);
}
sh = (SayHello)Activator.GetObject(typeof(SayHello), "ipc://Chater/SayHello");
SayEventReappear re = new SayEventReappear();
re.OnSay += new SayHandler(re_OnSay);
sh.AddEventReappear(Identity, re);
Response.Write(testL);
System.Threading.Thread.Sleep(120000);
re.OnSay -= new SayHandler(re_OnSay);
sh.SubEventReappear(Identity);
}
网上都说Ipc通道的速度比Tcp、http通道快,也有相关的测试文章。但我在多线程测试中发现Ipc通道比Tcp慢了差不多20多倍,测试方法是在IIS6中创建Remoting通道,用WAS压力测试工具进行测试。IIS6中Web园设置为100个进程,核心请求队列设置为4000,然后打开WAS并设置1000个线程,每个线程2个连接。点击启动。
private void Form1_Load(object sender, EventArgs e)
private void Form1_Load(object sender, EventArgs e)
远程代理类部分代码,
Code
protected void Page_Load(object sender, EventArgs e)
{
string testL=new string (' ',36*8);
SayHello sh;
IpcChannel channel = null;
string Identity=Request.QueryString["name"]??new Random().Next(10000000).ToString();
if (ChannelServices.RegisteredChannels.Length == 0)
{
BinaryServerFormatterSinkProvider sfsp = new BinaryServerFormatterSinkProvider();
sfsp.TypeFilterLevel = TypeFilterLevel.Full;
Hashtable props = new Hashtable();
props["portName"] = "ChatClient";
props["authorizedGroup"] = "Everyone";
channel = new IpcChannel (props, null, sfsp);
ChannelServices.RegisterChannel(channel, false);
}
sh = (SayHello)Activator.GetObject(typeof(SayHello), "ipc://Chater/SayHello");
SayEventReappear re = new SayEventReappear();
re.OnSay += new SayHandler(re_OnSay);
sh.AddEventReappear(Identity, re);
Response.Write(testL);
System.Threading.Thread.Sleep(120000);
re.OnSay -= new SayHandler(re_OnSay);
sh.SubEventReappear(Identity);
}
相关文章推荐
- 一起谈.NET技术,在.NET Workflow 3.5中使用多线程提高工作流性能
- [zz]技术:KVM虚拟机三大存储模式性能解析
- [zz]多线程中的 WaitForSingleObject 与 EnterCriticalSection 性能比较
- Oracle性能优化2- 依据场景选择技术
- 多线程下对java并发集合测试 性能分析
- ArcGIS的缓存技术(ZZ)
- Java核心技术点之多线程
- JAVA NIO 中的 zerocopy 技术提高IO性能
- 系统性能调优技术实战分享系列一
- J2EE的13种核心技术(zz)
- Remoting技术
- iOS多线程安全的几种解决方案以及性能对比
- 新炬网络-亿能测试“性能测试和自动化测试”技术研讨会
- Unity性能优化——LOD技术
- 以关键代码段为例子详细讲解多线程中的同步技术
- 第五章-网络性能技术
- 移动游戏性能优化技术干货分享——CPU篇
- 性能测试技术提高的门槛
- java多线程详解(4)-多线程同步技术与lock
- [zz]PHP函数的实现原理及性能分析