[*] Поместите двоичные данные в char [] буфер http://ideone.com/ni5ct
[*] Поместите бинальные данные в вектор , используя back_inserter code
on ideone (gcc-4.3.4, неизвестная ОС и аппаратное обеспечение): < /p>
[*]ostringstream[/code]: 53 миллисекунд
[*]
Код: Выделить всё
stringbuf
[*]
Код: Выделить всё
vector
[*]
Код: Выделить всё
vector
[*]
Код: Выделить всё
vector
[*]
Код: Выделить всё
char[]< /code>: 3,7 мс < /li>
< /ul>
на моем ноутбуке (Visual C ++ 2010 x86, Cl /Ox /Ehsc < /code>, Windows 7 Ultimate 64-Bit, Intel Core i7, 8 ГБ ОЗУ): < /p>
< /ul>
Visual C ++ 2010 x86, с оптимизацией с профилем Cl /Ox /EHSC /GL /C < /code>, Link /LTCG: pgi < /code>, run, link /ltcg: pgo < /code>, cearm: < /br /pgi < /code>, run, link /ltcg: pgo < /cod>: < /pgi < /code>, run, link /ltcg: pgo < /code>. />
ostringstream
[*]
Код: Выделить всё
vector< /code> с обычным итератором: 1,04 мс, 1,03 мс < /li>
< /ul>
тот же ноутбук, тот же ОС, используя Cygwin GCC 4.3.4 g ++ -O3 < /code>: < /p>
: 3,57 мс, 3,75 мс < /li>
< /ul>
тот же ноутбук, визуальный C ++ 2008 Sp1, Cl /Ox /EHSC < /code>: < /p>
ostringstream
[*]
Код: Выделить всё
stringbuf
[*]
Код: Выделить всё
vector
[*]
Код: Выделить всё
vector
[*]
Код: Выделить всё
vector
[*]
Код: Выделить всё
char[]< /code>: 1,52 мс, 1,25 мс < /li>
< /ul>
тот же ноутбук, визуальный C ++ 2010 64-битный компилятор: < /p>
ostringstream
[*]
Код: Выделить всё
stringbuf
[*]
Код: Выделить всё
vector
[*]
Код: Выделить всё
vector
[*]
Код: Выделить всё
vector
Код: Выделить всё
char[]< /code>: 1,25 мс, 1,24 мс < /li>
< /ul>
Редактировать: запустите все дважды, чтобы увидеть, насколько последовательными были результаты. Довольно последовательный imo. < /P>
Примечание: на моем ноутбуке, поскольку я могу сэкономить больше времени процессора, чем позволяет ideone, я установил количество итераций на 1000 для всех методов. Это означает, что ostringstream
выводы < /h2>
Буперинг вывода требует трех шагов каждый раз, когда данные, incomtrips for. Буферное пространство. < /li>
Скопируйте входящий блок. < /li>
Обновите указатель конец дат.
Код: Выделить всё
vector
Так почему StringBuf < /code> 2,5x медленнее на iDeone и, по крайней мере, в 10 раз медленнее, когда я его тестирует?>
Подробнее здесь: https://stackoverflow.com/questions/434 ... just-deali