热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

多线程环境下IpcChannel的性能瓶颈分析与优化建议

在多线程环境中,IpcChannel的性能表现并未如预期般优于Tcp和Http通道。实际测试结果显示,在IIS6中通过Remoting创建的Ipc通道,其速度比Tcp通道慢了约20倍。本文详细分析了这一现象的原因,并提出了针对性的优化建议,以提升IpcChannel在高并发场景下的性能表现。

网上都说Ipc通道的速度比Tcp、http通道快,也有相关的测试文章。但我在多线程测试中发现Ipc通道比Tcp慢了差不多20多倍,测试方法是在IIS6中创建Remoting通道,用WAS压力测试工具进行测试。IIS6中Web园设置为100个进程,核心请求队列设置为4000,然后打开WAS并设置1000个线程,每个线程2个连接。点击启动。

 

Remoting技术:多线程中IpcChannel的性能太逊

Remoting技术:多线程中IpcChannel的性能太逊

 

以下是WAS运行30s后的测试结果,WAS显示时间不准确是由于截图时间没有把握好

IPC通道

Remoting技术:多线程中IpcChannel的性能太逊

 

TCP通道:

Remoting技术:多线程中IpcChannel的性能太逊

 

对比可见,IPC通道在多线程状态下比TCP通道慢的太多了。

 

Tcp服务器端代码:

 

        }

 

IPC服务器端代码

 

 

 

远程代理类部分代码,

  

 

 

 re;

            }
            
        }

TCP客户端代码,运行与IIS中

 

 

 SayHandler(re_OnSay);
            sh.SubEventReappear(Identity);

        }

 

IPC客户端代码,运行与IIS中

 

 

IpcChannel的

 SayHandler(re_OnSay);
            sh.SubEventReappear(Identity);

        }

 


推荐阅读
author-avatar
Devil灬旋律
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有