Dans le code ci-dessous, la concaténation est le goulot d'étranglement. Comme vous pouvez le voir j'ai essayé quelques méthodes sophistiquées pour accélérer cela, mais c'est sanglant lent de toute façon. Je voudrais savoir s'il y a quelque chose que je peux faire pour le faire connaître.Comment accélérer la concaténation de chaînes en Python?
BTW à la fois simple et secret sont données lues à partir du fichier binaire et ils sont assez grand (environ 1MB)
x = b''
if len(plain) < len(secret*8):
return False
i = 0
for secByte in secret:
for j in range(8):
z = setBit(plain[i],0,getBit(secByte,j))
#x += bytes([z])
x = x.join([b"", bytes([z])])
#x = array.array("B",(int(z) for z in x.join([b"", bytes([z])]))).tostring()
i = i+1
pouvez-vous ajouter un simple « C » comme pseudocode de ce que vous essayez? Je ne suis pas familier avec setBit en Python ... –
Pour les méthodes de concaténation de chaînes et la vitesse, voir ceux-ci: http: //stackoverflow.com/questions/1316887/what-is-the-most-efficient-string-concatenation-method-in- python – mshsayem
. . . http://stackoverflow.com/questions/1349311/python-string-join-is-faster-than-but-whats-wrong-here – mshsayem