https://gist.github.com/tanakamura/7297025

とりあえずフォーマット文字列の解析をスキップできるとしたら、渾身のnaked asm…は遅かったので捨てて、output はなんかループ入ってるかどうかだけで時間倍になるみたい(4.2[ns/b])なので、switch で小さい数ループしないようにして2.5[ns/b]。

普通にprintfすると、30[ns/b]なのでまだ10倍ぐらいだな。10倍ならlibc準拠してなくても使えそうな気がする。


インターフェースとしては、

printf_output *out = printf_open("out.txt");
printf_format *fmt = compile_printf_format("%d,%d,%d");

fast_printf(out, fmt, 1, 2, 3);

みたいにする。