以下のコードでは連結がボトルネックです。 私はこれをスピードアップするための洗練された方法を試しましたが、とにかくその血まみれは遅くなりました。私はそれを甘やかすために何かできるかどうかを知りたい。Pythonで文字列の連結を高速化する方法はありますか?
ところで、プレーンと秘密の両方のバイナリファイルから読み込まれたデータであり、彼らは(1メガバイトの周りに)かなり大きいです
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
は、あなたがしようとしているものの擬似コードのような簡単な「C」を追加することができますか?私はPythonでsetBitに慣れていません... –
文字列の連結方法とスピードについては、以下を参照してください。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