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()