タグ

2013年1月11日のブックマーク (2件)

  • 2008-12-23

    C++初心者の私がC++をやめたくなった瞬間。 なにをいまさらな。 はじめに C++のstreamはとても良くできていて、これを用いたライブラリを作りたいのだけど、 当に(主にパフォーマンス的な理由で)大丈夫なのとかそういう話。 初めにお断りしておきますが、以下の内容はすべてlinux+gcc4.3での話です。 streamは遅い ふつうにistreamからget()して、ostreamにputしてるとめちゃくちゃ遅い。 C言語のgetchar, putcharより10進数で1.5桁ぐらい遅いよ。 istream::readとかででかいブロック読めば大丈夫なのだけど、 細かい単位で読みたいことの方が多いよね。 そういうわけで、そういう場合にも速く転送することが可能なのかどうか調べてみる。 テストプログラム istreamの内容をostreamに転送するプログラムを6通り書いた。 その1:

    2008-12-23
  • MASATOの開発日記: ファイル読み出しコードの性能評価

    ファイル読み出しコードの性能評価 C++でファイルの内容をメモリ上に読み出すコードを書いてみたところ、 書き方によって結構性能に差がありました。そこでちょっと性能を調べてみましたのでまとめておきます。 C++では、メモリ上でのデータ保持方法は色々ありそうですが、 代表的なものということで、std::stringとstd::vectorに保持するコードを4つ選んでみました。 1つめのコード。Case1とします。 // Case1 using namespace std; string Data(istreambuf_iterator<char>(ifstream(FileName, ios::in | ios::binary)), istreambuf_iterator<char>()); 一行でも書ける短いコードです。 2つめのコード。Case2とします。 // Case2 using n