简单的Python挑战:最快位异或的数据缓冲器缓冲器、最快、简单、数据

2023-09-10 22:32:54 作者:落阳、一地的殇

挑战

在两个同等大小的缓冲区执行按位异或运算。该缓冲区将被要求是蟒蛇 STR 类型,因为这是传统上在Python数据缓冲区的类型。返回所得到的值作为 STR 。这样做尽可能快。

输入是两个1兆字节(2 ** 20字节)的字符串。

目前的挑战是为基本打我使用python的或现有的第三方Python模块效率低下的算法(放宽的规定:或创建自己的模块)。边际增加是没有用的。

 从OS进口urandom的
从numpy的进口frombuffer,bitwise_xor,字节

高清slow_xor(AA,BB):
    A = frombuffer(AA,DTYPE =字节)
    B = frombuffer(BB,DTYPE =字节)
    C = bitwise_xor(A,B)
    R = c.tostring()
    回报 -  [R

AA = urandom的(2 ** 20)
BB = urandom的(2 ** 20)

高清test_it():
    对于x中的xrange(1000):
        slow_xor(AA,BB)
 

解决方案

第一次尝试

使用 scipy.weave 和的