■
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);
みたいにする。