cout 與 printf 效率比較
平常寫 research code 比較沒什麼感覺。最近無聊寫起 UVa Online Judge 就對效能比較在意一點。
今天才知道原來 printf 比 cout 快、scanf 比 cin 快、\n 比 endl 快。
有興趣可以自己 print 一堆 hello world 出來試看看。我測的結果大致上是十比九左右。
Tags: C++, Efficiency, OlineJudge
. 10 Sep 08 | C++
平常寫 research code 比較沒什麼感覺。最近無聊寫起 UVa Online Judge 就對效能比較在意一點。
今天才知道原來 printf 比 cout 快、scanf 比 cin 快、\n 比 endl 快。
有興趣可以自己 print 一堆 hello world 出來試看看。我測的結果大致上是十比九左右。
Tags: C++, Efficiency, OlineJudge
endl 除了 output 一個 ‘\n’, 還做一次 flush. 理應較慢.
IOStream 是種架構, 主要分三層:
formatting(output)/parsing(input)
buffering
device
各層之間的 binding 是動態決定的, (當然也可各自獨立被改寫) 我想你觀察到的 10:9 的差異就是這裡所 incur 的 runtime overhead.
了解,感謝分享