[PYTHON] Calcul des bits du tampon en anneau (haute vitesse)

Contexte

L'indice a été calculé en utilisant le surplus lors de l'utilisation du tampon en anneau. Un programmeur au travail m'a dit que je peux faire un peu d'arithmétique, alors je vais l'écrire ici.

Code(Python)

ring_buffer.py


# coding:utf-8
'''
Expérimentez si le tampon en anneau devient plus rapide par opération de bit
'''
import time
import numpy as np

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

    #Opération excédentaire ver
    start = time.time()

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

    elapsed_time = time.time() - start
    print ("Surplus ver:{0}".format(elapsed_time) + "[sec]")    
    
    #calcul de bits 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

Calcul des bits du tampon en anneau (haute vitesse)
Opération de bit
Opération logique / opération sur bit 0
[Python] Opération d'énumération
Fonctionnement de base des pandas
Fonctionnement de base des Pandas