[PYTHON] Bitberechnung des Ringpuffers (hohe Geschwindigkeit)

Hintergrund

Der Index wurde unter Verwendung des Überschusses bei Verwendung des Ringpuffers berechnet. Ein Programmierer bei der Arbeit sagte mir, dass ich ein bisschen rechnen kann, also schreibe ich es hier auf.

Code(Python)

ring_buffer.py


# coding:utf-8
'''
Experimentieren Sie, ob der Ringpuffer durch Bitbetrieb schneller wird
'''
import time
import numpy as np

def main():
    ring_buff = np.array([i for i in range(1024)])

    #Überschussbetrieb ver
    start = time.time()

    for cnt in range(102400):
        index = cnt % 1024
        ring_buff[index] = cnt

    elapsed_time = time.time() - start
    print ("Überschuss ver:{0}".format(elapsed_time) + "[sec]")    
    
    #Bitberechnung ver
    start = time.time()

    for cnt in range(102400):
        index = cnt & 0b1000000000
        ring_buff[index] = cnt

    elapsed_time = time.time() - start
    print ("bit ver   :{0}".format(elapsed_time) + "[sec]")

if __name__ == '__main__':
    main()


Recommended Posts

Bitberechnung des Ringpuffers (hohe Geschwindigkeit)
Bitoperation
Logische Operation / Bitoperation 0
[Python] Operation der Aufzählung
Grundlegende Bedienung von Pandas
Grundlegende Bedienung von Pandas