【初心者歓迎】C/C++室 Ver.41【環境依存OK】 at TECH
[2ch|▼Menu]
175:デフォルトの名無しさん
07/08/10 10:50:52
>>172
pubsetbuf()でバッファでかく取っとくと、一般には速くなると期待されるんだが、
gccの少なくとも古いバージョンでは、open済みのstreambufに
pubsetbuf()を実行しても、何食わぬ顔をして元のバッファを使うようだ。

mmap()したポインタをstrstreamにそのまま突っ込むのが多分一番速いが、
移植性に欠ける上にstrstreamがdeprecatedなのがネックだな。
stringstreamのstrメンバを使うとせっかくmmap()したものを
わざわざコピーしてしまうし、
stringstreamのpubsetbuf()も有効とは限らないようだ。
(少なくともVC++では平然とシカトされる)

>>173
それ記述が簡単でいいんだが、少なくとも
VC++のostream実装とかだと、大して速く無さそうなんだよな。
sgetc()/snextc()と、sputc()使って1文字ずつコピーしてるし
微妙に無駄の多いコードになってるんで、
下手すりゃ手書き1文字コピー回したしたほうがまだ速いかもしれん。


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5110日前に更新/231 KB
担当:undef