SNMP_PP和SNMPSharpNet的性能比较
来源:互联网 发布:union软件怎么用 编辑:程序博客网 时间:2024/05/17 03:50
先介绍下背景:
大约3年以前开始使用SNMP++,去年由于上层是C#、C++调试麻烦等问题,转向其他snmp库,比对了SNMP++,NetSnmp和SnmpSharpNet,最终因为SnmpSharpNet用起来的方便就选了它,随后逐渐完善了自己负责的软件的相应数据访问层。
去年另一个项目的软件仍使用snmp++的库,并且重编译过(可能进行了某些改动),该软件的目标之一是替代我现在使用的软件!天哪,我不允许替代我的软件的代码性能低于我,所以做了下效率的测试。
测试数据在公司...很遗憾这里列不出来了...
测试环境:
PC网卡直连设备(这个设备是我们自己的产品,嵌入式SNMP部分使用Agent++)
使用Wildpackets Etherpeek直接抓包测试。
使用C++编写测试程序,调用snmp_pp.dll,Get设备object id 10次。
使用C#编写测试程序,调用snmpsharpnet.dll,Get设备object id 10次。
测试程序均为release编译。
测试结果:
C++情况下第一个完整GET操作好事0.047s,C#为0.0468
随后的时间均短一些,但C#的timetick居然在多次循环中存在数值为0!即第一个GET0.0468,第二个0,第三个0,第四个非0的数值...不明白为什么,所以采用抓包工具进行更客观的测试。
结果显示,C#情况下第一个Get的Request包和最后一个Response包的时间间隔约为0.3s,C++情况下在1.4-1.5s之间。
注意到当时C++情况下命令行有打印一些其他信息,故在snmp_pp源码中删除打印信息的语句,重新测试,时间在1.3s左右。
测试GetNext操作,数据和Get基本相同。
(我注意了下数据包中的源端口,C++和C#都是每包+1,也就是自动以下一个可用端口作为源端口)
据说CLR在数据库、Socket、文件处理方面比C++强,这个我没测试过,不过现在在SNMP的基本库来看,还是SNMPSharpNet高一筹。
所以...我还是用SnmpSharpNet吧
- SNMP_PP和SNMPSharpNet的性能比较
- SNMP_PP和SNMPSharpNet的性能比较
- snmpsharpnet的Trap实例
- 谈谈个人对SnmpSharpNet的实践经验
- 谈谈个人对SnmpSharpNet的实践经验
- as2和as3的性能比较
- DataReader和Dataset的性能比较
- eAccelerator的安装和性能比较
- Nginx和Apache性能的比较
- Generic 和 cast 的 性能比较
- C++和C#的性能比较
- DECODE和CASE的性能比较
- Access和Firebird的性能比较
- Nginx和Apache性能的比较
- DECODE和CASE的性能比较
- dynamic和反射性能的简单比较
- Spring MVC 和Struts2的性能比较
- html5 和 flash的性能比较
- Android深入浅出之Audio 第二部分 AudioFlinger分析
- Java环境变量设置
- GridView中获得控件的引用的方法
- Hibernate学习笔记总结(三)——Hibernate 3.x——HQL查询语言(重点)
- Hibernate学习笔记总结(四)——缓存策略
- SNMP_PP和SNMPSharpNet的性能比较
- java-支持鼠标拖动面板
- VI使用总结
- ubuntu下安装svn
- VSS 2005配置,很详细
- 休息一晚,明天继续。。。有的时候运动换换脑子可以给我们带来无限的放松啊
- LBFGS应用---alglib的c++版本应用
- Change了UISwitch的value,value changed事件却没有被触发。
- WCF 学习总结4 -- 用Duplex实现消息广播