+ -
当前位置:首页 → 问答吧 → 求助为什么我自己写的hash执行起来那么慢

求助为什么我自己写的hash执行起来那么慢

时间:2010-11-26

来源:互联网

Python code

def hashstring(str,dwHashType):
    list=ascii(str)
    seed1 = 0x7FED7FED
    seed2 = 0xEEEEEEEE
    for i in list:
        ch = int(i)
        seed1 = (CryptTable[(dwHashType<<8)+ch]^(seed1 + seed2))&0xFFFFFFFF
        seed2 = ch + seed1 + seed2 + (seed2 << 5) + 3   
    return seed1  


代码如上,慢的跟牛一样……这hash是暴雪的hash 用C++的话 执行500W条可能才2.6秒(别人测过) ,我用python写完之后100W条就要几分钟才能执行完。。。。为什么呢?

作者: acmxiaocao   发布时间: 2010-11-26

正常。不能忍就换C++。

作者: iambic   发布时间: 2010-11-26

表示用错工具,就用c去写吧也就这么些代码...

作者: angel_su   发布时间: 2010-11-26

语言的选择会有关系,但算法的差异可能关系更大吧。
我没看你的算法,看了也不见得懂,不知道跟你说的C++写的算法是否一致。

作者: fibbery   发布时间: 2010-11-26