|
|
|
Быстрое чтение файла11.11.2011, 10:59. Показов 21600. Ответов 71
Метки нет (Все метки)
Здраствуйте. Я пишу программу, которая читает файлы порядка от нескольких килобайтов до максимум 3 Мб. Посоветуйте пожалуйста, какие функции и/или алгоритмы использовать для максимальнобыстрого чтения данных, представленных вещественными числами. Прошу прощения, если мой вопрос неправильно сформулирован.
3
|
|
| 11.11.2011, 10:59 | |
|
Ответы с готовыми решениями:
71
Быстрое чтение массива из файла Быстрое чтение и запись файлов
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|||||||
| 11.11.2011, 14:37 | |||||||
0
|
|||||||
|
Клюг
7677 / 3192 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
|
||||||||||||||||||
| 11.11.2011, 14:37 | ||||||||||||||||||
|
IMHO, для ДОСи можно использовать
0
|
||||||||||||||||||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|
| 11.11.2011, 14:42 | |
|
0
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 11.11.2011, 14:45 | ||
|
malloc, т.е. в динамической памяти
1
|
||
|
|
||||||||||||
| 11.11.2011, 15:01 | ||||||||||||
Чтобы перебить строку в вещественные числа strtok-ом парсим токены идущие через пробел char delim[] = " ";
Ну а на плюсах можно всем что выше написал не заморачиваться и сделать вот так программа с динамической памятью тут уже готовый проект считывания ifstream-ом
1
|
||||||||||||
| 11.11.2011, 15:03 | |
|
Не по теме: -=ЮрА=-, но вопрос то такой: происходит ли автоматическая буферизация двоичных потоков
0
|
|
|
|
|
| 11.11.2011, 15:15 [ТС] | |
|
Не по теме:
Спасибо всем большое, но у меня уже переполнение буфера в голове от такого кол-ва информации.
0
|
|
|
|
|||||||||||
| 11.11.2011, 16:37 | |||||||||||
|
Всё же я посьавил себе за цель проверить свои слова о быстроте,
для полноты анализа рассматривал сразу 3 алгоритма чтения вещественных в массив 1 - й вариант fscanf 2 - й буффер а затем подхват всего strtok-ом и atof-ом 3 - й любимый многими начинающими вариант ifstream>> Пришлось написать заполнитель файла - мой файл содержит 656898 double и весит 3,75 Мб) (вбивать вручную 3 Мб чисел я бы засел на дня 2) так что цепляю и код рандомного наполнителя файла тоже (наполняет файл долго - около 15 сек, ну дык и значений почти 660 тысяч) fill.cpp
Сам алгоритм чтения здесь read.cpp
Сравнительная таблица на миниатюре. Как видим быстро отработали 1-й и 2-й варианты, но спешу заметить посмотрите сколько операций именно во 2-м варианте - в два раза больше чем в 1-м, а время работы идентично, так что выводы делайте сами... PS:Плюсовый вариант прямого чтения ifstream>> явообще отбросил для себя (даже и не думал что это такой ужас в плане времени)
1
|
|||||||||||
|
|
|
| 11.11.2011, 18:44 [ТС] | |
|
Если не использовать cout, то на заполнение файла у меня ушло ~5 сек
![]() Чтение фсканфом у меня в 4 раза быстрее чем ifstream А strtok у меня not declared in this scope
0
|
|
|
278 / 174 / 21
Регистрация: 10.07.2011
Сообщений: 441
|
||
| 11.11.2011, 18:47 | ||
|
з.ы. было бы информативно проверить результаты действия разных вариантов с точносттю не до секунды, а до миллисекунды. возможно разница всетаки есть.
0
|
||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||||||
| 11.11.2011, 18:50 | ||||||
|
Вот
2
|
||||||
|
|
|
| 11.11.2011, 19:04 [ТС] | |
|
У меня не работает
![]() error: 'readx' was not declared in this scope
0
|
|
|
278 / 174 / 21
Регистрация: 10.07.2011
Сообщений: 441
|
||
| 11.11.2011, 19:09 | ||
|
поменяйте местами или объявите прототипы.
1
|
||
| 11.11.2011, 19:10 | |
|
Не по теме: Байт, а это что у вас за компилятор, который нашёл функции без объявления перед использованием?
0
|
|
| 11.11.2011, 19:10 | |
|
Быстрое преобразование фурье wave файла
Быстрое считывание 32кб из файла 7гб Быстрое создание пустого файла определенного размера Быстрое создание бинарного файла заданного размера Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|