文字列を受け取り、quotedprintableとしてフォーマットするルーチンを書いています。そして、それは可能な限り速くなければなりません。私の最初の試みは、ある文字列バッファから別のエンコーディングに文字をコピーし、途中で行を折り返しました。次に、ほとんど同じデータをすべてコピーするよりも、元の文字列バッファを変更する方が速いかもしれないと思いました。挿入はコピーよりもはるかに悪いことがわかりました。2番目のバージョン(文字列バッファ挿入を含む)は8倍遅く、これは多くのメモリを移動する必要があるため、理にかなっています。
私が望んでいたのは、ある種のギャップバッファデータ構造でした。これにより、挿入では、残りの文字列バッファ内のすべての文字を物理的に移動する必要がなくなりました。
それで、時々文字を挿入する文字列をリッピングする最速の方法についての提案はありますか?
標準のmimeutilsライブラリを使用する提案は役に立ちません。これは、文字列をドットエスケープして、SMTPサーバーに一度にダンプできるようにするためです。