printfはやくなるか
なんか色々と検討した結果、画像処理ライブラリに必要なのは高速なprintfという結論に至った我々はprintfはやくしようと思った。
WriteFile
https://skydrive.live.com/redir?resid=ECB59E566C2D71F1!2671&authkey=!AJpqfR-j8rl6w18
コードはこれ
https://gist.github.com/tanakamura/7295694
まあ大体 1e-9 〜 1e-8 [sec/byte] ぐらい出ると思ってよさげ。省電力機能のケアとかはしてないのであまりいい値ではない。
というかWindowsの境界2560なんだこれ。
Linux揺れてるのはVirtualBOX上だからかな…まあそのうち確認しよう。
printf
https://gist.github.com/tanakamura/7295977
- fprintf : これをはかりたい
- sprintf : IOのオーバーヘッド除いた
- fputs : printfとIOのオーバーヘッド比べるために入れた
- digit : 関数呼び出しのオーバーヘッドとりたい(GCCでは-fno-builtin付けてる)
mac: fputs: 640 480 0 9.772301e-02[sec] 1.871228e-08[sec/byte] sprintf: 640 480 0 2.412901e-01[sec] 4.463046e-08[sec/byte] fprintf: 640 480 0 2.970252e-01[sec] 5.493955e-08[sec/byte] digit: 640 480 0 4.692078e-04[sec] inf[sec/byte] win-vc2012 fputs: 640 480 0 5.463843e-002[sec] 1.046232e-008[sec/byte] sprintf: 640 480 0 1.332914e-001[sec] 2.465437e-008[sec/byte] fprintf: 640 480 0 1.681525e-001[sec] 3.110249e-008[sec/byte] digit: 640 480 0 6.316458e-004[sec] 1.#INF00e+000[sec/byte] linux-glibc: fputs: 640 480 0 3.984094e-02[sec] 7.628856e-09[sec/byte] sprintf: 640 480 0 6.200790e-02[sec] 1.146935e-08[sec/byte] fprintf: 640 480 0 5.031013e-02[sec] 9.305663e-09[sec/byte] digit: 640 480 0 1.144886e-03[sec] inf[sec/byte]
ふつうにprintfでも1e-8[sec/byte]ぐらい出ていた。
まーこれは僕の頭がおかしい。1e-8 と 1e-9 って実際10倍違うんだよね…1000%違うとか言うべきだな。
まあわかった理論値で10倍はやくなるというところか。
まとめると、