Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: Алекс Кэш   (25.11.2011 в 17:25)
Сделал тестовый вариант по Вашему совету.
fprintf все равно быстрее.
Видимо формировать строку размером 200 Мб (или даже несколько строк поменьше) из моих данных - это долго. Я пытался использовать следущие варианты преобразований:

1. sprintf(szbuff, "%.7g", X);

2. С помощью библиотеки std::stringstream - это вообще кошмар сколько времени занимает (втрое больше!)

Правда только сейчас узнал, что можно использовать библиотеку boost
( boost::lexical_cast<std::string>( значение ) ), может она быстрее преобразует? просто уже надоело разбираться, наверняка все равно fprintf() не побьет.

При этом сам вывод строки действительно проходит быстро, но потери времени на преобразование и формирование строки сводят на нет все преимущество.

К тому же все равно теряется весь смысл использования fout в плане удобства: вывод какой-то кривой получается и сложный.
В итоге решил использовать fprintf - хоть и не очень безопасно и надо код переделывать, но все же удобнее, быстрее, менее затратно в плане оперативки. Или я не прав?


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: