Joe*_*ino 9 .net performance httplistener
快速背景:我知道HTTPListener使用http.sys内核驱动程序,据说这使它成为一个伟大的执行者.但是,在托管的http服务器和本机vc ++服务器之间进行一些性能基准测试时,我看到本机端增加了大约15 MB/s.测试设置是两个实验室机器,新格式化为1gb nics.在本机方面,我看到大约110 MB/s,接近100%的nic减去开销,当使用HTTPListener时,我看到~94 MB/s(最大100).
测试是苹果到苹果,
总的来说,我希望我能够通过HTTPListener接近110 MB/s的本机服务器,15 MB/s似乎相当昂贵.
问题:1.我缺少其他针对托管的优化吗?2.有什么潜在的瓶颈,我通过反射器查看HTTPResponseStream,看起来有一些编组正在进行,但没有明显的问题,事实上当使用分块时,它产生与我的本机服务器相同的块数组.
任何想法都赞赏,
它使用 Http.sys 的事实并不意味着不存在本机到托管的转换。来自上述MSDN文章:
HTTP.sys 提供连接管理、带宽限制和 Web 服务器日志记录。
由于您正在运行托管代码,因此您具有互操作(本机到托管,不要与 COM 互操作混淆),您具有垃圾收集等。它永远不会像纯本机 C++ 实现那么快。
编辑:为了更清楚地说明这一点,您仍在运行 .NET 进程,您只是在内核模式下挂接到 IIS,而不是在用户模式下。关于此的一篇很棒的文章在这里:http://www.west-wind.com/presentations/howaspnetworks/howaspnetworks.asp
| 归档时间: |
|
| 查看次数: |
3106 次 |
| 最近记录: |