单凡一开始b[0][bi]就是0,就不需要做&运算了,
上面的注释的版本先检查,非0才运算,到0或执行10次运算即止
下面的版本一上来就运算,再判断是不是0,如果本来就是0,就不需要做多余的&运算,所以理论上注释的版本更优。
然而现实是,统计出来的运算次数没变化,好吧,就算不可能一开始就初始化为0,但运算次数没变,速度怎么慢了这么多?从1.835us到1.269us
还有一个做 | 或运算的版本,图4,也是变慢了。
其实有大量的情况是0,可以一次与运算都不要做的:图5。
代码在
https://github.com/shiwanghua/PacketClassification/blob/2d13bd91e0d701f432b3c0e8e9d1cf424259209a/20221003-GraduationDesign/HEMBitsetsSearch/HEMBS.cpp#L320
(34257)#C++#
上面的注释的版本先检查,非0才运算,到0或执行10次运算即止
下面的版本一上来就运算,再判断是不是0,如果本来就是0,就不需要做多余的&运算,所以理论上注释的版本更优。
然而现实是,统计出来的运算次数没变化,好吧,就算不可能一开始就初始化为0,但运算次数没变,速度怎么慢了这么多?从1.835us到1.269us
还有一个做 | 或运算的版本,图4,也是变慢了。
其实有大量的情况是0,可以一次与运算都不要做的:图5。
代码在
https://github.com/shiwanghua/PacketClassification/blob/2d13bd91e0d701f432b3c0e8e9d1cf424259209a/20221003-GraduationDesign/HEMBitsetsSearch/HEMBS.cpp#L320
(34257)#C++#
全部评论
破案了
相关推荐
01-13 15:29
南京理工大学 Java 说一下背景,我人在某大厂,想跳槽,但是没有实操的agent经历。想着自己编一个简历和ai项目,然后背一背通关面试。下面我编造的这个项目怎么样?能通过吗?要在哪一个方面重点突破?(我简历部分都通过了。)
哞客37422655...:大厂面agent可能会问问bad case,提前准备三个实例看看
点赞 评论 收藏
分享
程序员花海_:实习写的太偏技术了 分库分表这种一看就和应届生没关系
点赞 评论 收藏
分享
点赞 评论 收藏
分享