Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 262
#1

Максимальное быстрое создание большого файла - C++

08.06.2016, 08:56. Просмотров 398. Ответов 16
Метки нет (Все метки)

У кого какие алгоритмы создания максимально быстро файлов, больших размеров?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2016, 08:56
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Максимальное быстрое создание большого файла (C++):

Быстрое заполнение большого файла - C++
Здравствуйте! Возникла проблема в работе с большим файлом: возникла необходимость быстро заполнять некоторый участок большого файла...

Быстрое создание бинарного файла заданного размера - C++
Собственно, вопрос в теме. Как быстро выделить память под файл? Можно, конечно, методично записать в файл массив необходимого размера, но...

Быстрое создание пустого файла определенного размера - C++
Добрый день Столкнулся с проблемой как можно очень быстро создать файл на жестком диске, заполнены нулями (или мусором) за малый...

Быстрое чтение большого файла. Зависает процесс - C++
Всем доброго времени суток. Есть задача прочитать файл(1-20 мб), который состоит из слов разделённых пробелами для того, чтобы переписать...

Быстрое чтение файла - C++
Здраствуйте. Я пишу программу, которая читает файлы порядка от нескольких килобайтов до максимум 3 Мб. Посоветуйте пожалуйста, какие...

Быстрое чтение массива из файла - C++
Добрый день, появился вроде бы не сложный вопрос, у меня есть динамический массив данных double ** data; // пусть 200x500 //я его...

16
nmcf
6207 / 5518 / 1932
Регистрация: 14.04.2014
Сообщений: 23,155
08.06.2016, 09:49 #2
Что значит максимально быстро? Ты по одному байту, что ли, записываешь?
0
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 262
08.06.2016, 09:51  [ТС] #3
нет по 100 метров)
0
nmcf
6207 / 5518 / 1932
Регистрация: 14.04.2014
Сообщений: 23,155
08.06.2016, 10:39 #4
Тогда компьютер бери попроизводительнее.
0
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 262
08.06.2016, 10:47  [ТС] #5
ахахахахах
0
nmcf
6207 / 5518 / 1932
Регистрация: 14.04.2014
Сообщений: 23,155
08.06.2016, 11:28 #6
Ну а ты чудес каких-то ожидаешь?
0
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 262
08.06.2016, 13:35  [ТС] #7
нет конечно) думал тут форум программистов
0
castaway
Эксперт С++
4926 / 3033 / 372
Регистрация: 10.11.2010
Сообщений: 11,084
Записей в блоге: 10
Завершенные тесты: 1
08.06.2016, 14:05 #8
Нет тут никаких особый алгоритмов. Всё зависит от конфигурации компьютера.
Пробуй писать разными кусками (например от 10 до 100 с шагом 10 МБ) и выбери для себя оптимальный.
0
nmcf
08.06.2016, 14:11
  #9

Не по теме:

Цитата Сообщение от castaway Посмотреть сообщение
Всё зависит от конфигурации компьютера.
Вот и я о том же.

0
mat_for_c
208 / 203 / 47
Регистрация: 26.04.2013
Сообщений: 952
Завершенные тесты: 3
08.06.2016, 16:46 #10
Так, для ознакомления: ссылка
Для меня экспериментально получилось, что быстрее всего работать через fwrite (но тестировал я только вывод чисел чисел)
0
nmcf
6207 / 5518 / 1932
Регистрация: 14.04.2014
Сообщений: 23,155
08.06.2016, 17:33 #11
mat_for_c, тогда через WinAPI ещё быстрее.
0
mat_for_c
208 / 203 / 47
Регистрация: 26.04.2013
Сообщений: 952
Завершенные тесты: 3
08.06.2016, 17:35 #12
Цитата Сообщение от nmcf Посмотреть сообщение
тогда через WinAPI ещё быстрее
а можно поподробней или небольшую ссылку?
0
nmcf
6207 / 5518 / 1932
Регистрация: 14.04.2014
Сообщений: 23,155
08.06.2016, 17:39 #13
Смотри CreateFile() и прочие функции. Они не заменяют полностью потоки, просто ты упомянул fwrite().
1
warhast
19 / 19 / 4
Регистрация: 02.02.2014
Сообщений: 74
08.06.2016, 21:37 #14
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
truncate же, вроде как вполне стандартный способ оттяпать побольше места под файл.
0
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 262
08.06.2016, 21:47  [ТС] #15
mat_for_c, вот кусок кода
C++
1
2
3
4
    auto hFile = CreateFileA("temp.txt", GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, 0, 0);
    DWORD nWritten;
    WriteFile(hFile, buf, builder.getPos() - buf, &nWritten, NULL);
    CloseHandle(hFile);
Добавлено через 1 минуту
короче ребята выбрал старый добрый FILE* создаёт 1.1GB за 0.49 секунд) меня устраивает. Тему можно закрывать
0
08.06.2016, 21:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2016, 21:47
Привет! Вот еще темы с ответами:

Быстрое преобразование фурье wave файла - C++
Всем доброго времени суток! Сейчас работаю над дипломом, в c++ как и в обработке звука пока новичок. На данном этапе мне необходимо...

Быстрое считывание 32кб из файла 7гб - C++
Есть бинарный файл размером 6,95 ГБ, он представляет из себя массив short. Необходимо быстро считать случайные 65536 шортов. Т.к. весь файл...

Создание бесконечно большого буфера - C++
Подскажите как создать временный буфер для целых чисел. Размер буфера заранее не известен и изменяется во время выполнения программы....

Хеширование строк большого файла - C++
Здравствуйте! Помогите, пожалуйста разобраться с процессом хеширования. Задача состоит в том, что мне дан текстовый файл примерно в 100Мб...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru