整数を文字列に変換する最速の方法は、2桁ずつまとめて処理することだった

Integer to String Conversion (2014)

整数から文字列への変換はめったにボトルネックにならないが、プロファイリングでは頻繁に現れる。Lwanではsnprintf()から素朴な除算・反転方式へ、さらに逆順に書き込む方式へと改良を重ねて高速化した。Facebook Engineeringが公開した手法は00〜99の2桁分をまとめた参照テーブルを使い、除算回数を半減させて約31%高速化。ただしライセンスが不明でLwanには取り込めないという。

しかし結局、こういうものをいじるときに常に避けるべきことをやってしまった。性能が上がるか測ることもなく配列参照を加算に変え、そのままコミットしてしまったのだ。参照テーブルの方が約9%速い。痛い。

この日のほかの記事

2026-10-19