SNMP_PP和SNMPSharpNet的性能比较

先介绍下背景:

    大约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吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值