Пятница, 29 Ноября 2024, 23:56

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Считывание данных из фаила
MR_BorgДата: Вторник, 14 Мая 2013, 20:08 | Сообщение # 1
участник
Сейчас нет на сайте
Подскажите пожалуйста с таким вопросом.
Есть файл в который записываю информацию о 2-х мерном массиве. Высота и ширина.
Далее идут эначения массива типа DWORD.
Запись в файл идет быстро, но когда считываю данные, этот процесс идет медленно.
Считываю так
for(int i=0;i<(xsize*ysize);i++)
{
fread( &test, sizeof(DWORD),1 , f );
};
Можно ли повысить производительность?


Изучаю C++ попутно пишу игру.
RUNGOGET2THECHOPAHДата: Вторник, 14 Мая 2013, 21:15 | Сообщение # 2
участник
Сейчас нет на сайте
Размер файла в студию.
TrueNathanДата: Вторник, 14 Мая 2013, 22:09 | Сообщение # 3
частый гость
Сейчас нет на сайте

От сюда видно что более производительнее использовать memory mapping (для POSIX систем)
Вот, если я не ошибаюсь, Windows версия, функция схожая с mmap ссылка (примеры)
Источник


Сообщение отредактировал TrueNathan - Вторник, 14 Мая 2013, 22:19
НохчиДата: Вторник, 14 Мая 2013, 22:17 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Ставим указатель на конец файла - fseek;
Получаем размер файла в байтах - ftell
Ставим указатель на начало файла - fseek
Читает весь файл сразу - fread


Многие вопросы по Windows отпадут, если посмотреть тут
MR_BorgДата: Среда, 15 Мая 2013, 17:12 | Сообщение # 5
участник
Сейчас нет на сайте
Проблема скорее всего в размере файла.
Цитата (Нохчи)
Ставим указатель на конец файла - fseek; Получаем размер файла в байтах - ftell Ставим указатель на начало файла - fseek Читает весь файл сразу - fread

Попробую Ваш метод.

Добавлено (15.05.2013, 17:12)
---------------------------------------------

Цитата (RUNGOGET2THECHOPAH)
Размер файла в студию.

100 файлов по ~ 760 кб грузит по 5-6 секунд.


Изучаю C++ попутно пишу игру.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг