发现文本到长整数 ()和文本到整数 ()有趣的问题
大家有没发现,文本到长整数 ()比文本到整数 ()执行效率还要高!!
以计次循环 (100000000)为例.转化为整数花费时间2700毫秒左右!
而转化为长整数花费时间0毫秒!(编译为发布版速度)目测,最少3000倍效率!这个StrToN64函数是吴总自创的算法吗?_ttoi函数也是自创的吗?当初为何不用StrToN64函数的返回值强转为int返回为整数.文本到整数 ()不就速度飞起来了?省时省脑!如下图:
你的测试代码有问题吧,单单计次循环那么多次就不可能是 0 毫秒,C++ 的编译优化会将你的无效代码删除掉。
使用 #pragma optimize( "", off) 禁用编译优化后,实际性能差距应该是 5 倍左右。
_ttoi 是 C 的函数,速度已经算好了,C++11 的 std::stoi 更是慢得出奇。
长整数不能无脑强制转换成 32 位整数,因为转换的原则是直接砍掉后面 4 个字节。
比如长整数值 5000000000 (0x00F2052A01000000),强转到整数后是 705032704 (0x00F2052A)。 大佬厉害 这么细节的地方都被你发现了
占用时间应该是那个强转INT带来的 这么细节的地方都被你发现了 666 昨天发的回复还没放出来,这里简单给个结论,你的测试代码没考虑编译优化,实际性能差距是5倍左右 X大佬出结果就定案了,强转要占时间,不过相差几十倍,是不大可能 suyan 发表于 2023-10-30 09:14
占用时间应该是那个强转INT带来的
会错意了.后图是个人建议"文本到整数()"源码变更为这样.速度才和"文本到长整数()"一样快!!
页:
[1]
2