Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с объёмным файлом. Наставьте на путь истинный. 
:(
    Опции темы
ParatroopeR
Дата 30.1.2005, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 30.1.2005

Репутация: нет
Всего: нет



Итак, у меня есть задача. Обработать исходный файл *.txt весом 60 мегов. Алгоритм обработки довольно таки простой, но суть не в этом. Накодировал я всё нормально и алгоритм пашет как часы(но в этом и проблема!!!), то что на обработку файла уходят часы, а мне нужно нехило всё это дело ускорить. Смысл в чём, так как я не могу понять как запихнуть файл целиком в оперативу, чтобы повысить быстродействие. На данный момент обработка ведётся "порциями", в файле порядка 800 тысяч строк. Я вытаскиваю оттуда по 4000 строк, заношу данные в интовский массив 4000 на 2000. В итоге за 5 минут удаётся обработать порядка 20000 строк, сами понимаете чем это потом выливается. Если создавать массив больше компилятор ест. начинает орать. Может кто уже сталкивался с такой проблемой.

Вопрос: "Как запихнуть всё содержимое файла в ОП?"
PM MAIL ICQ   Вверх
En_t_end
Дата 30.1.2005, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: нет
Всего: 20



Распаралеливай процесс
PM MAIL ICQ Skype GTalk Jabber   Вверх
ParatroopeR
Дата 30.1.2005, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 30.1.2005

Репутация: нет
Всего: нет



[C++Error] Unexpected reply.
Этот вариант мне не подходит. Мне необходимо неоднократно обращаться к содержимому файла, паралель не паралель, хард от этого быстрее не станет. Может кто знает посерьёзней способ? Как запихнуть весь файл в ОП, это самый (Как мне кажется) правдоподобный способ увеличить производительность. Как сохранить в ОП около 1.5 миллиардов чисел?
PM MAIL ICQ   Вверх
_hunter
Дата 31.1.2005, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



CreateFileMapping() и MapViewOfFile() должны помочь
+ в чем проблема просто прочитать 60 метров ( это понты, на самом деле )


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
En_t_end
Дата 31.1.2005, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2074
Регистрация: 4.12.2004

Репутация: нет
Всего: 20



_hunter
Он наверное сказал про 60 метров с таким смыслом, что может быть и больше smile
CreateFileMapping() и MapViewOfFile() - это подойдет, точно.
PM MAIL ICQ Skype GTalk Jabber   Вверх
_hunter
Дата 31.1.2005, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



ну так и сказал бы как-то так: "длинной не меньше 60-ти метров ( предполагается 6 км )"


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
ParatroopeR
Дата 31.1.2005, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 30.1.2005

Репутация: нет
Всего: нет



Да мне просто обращаться к нему надо около 1.5 миллиарда раз. Сами понимаете во, что превращается этот процесс.
Пойду попробую. Пока заранее спасибо. А то, что может быть и больше, чтож вполне может быть.
PM MAIL ICQ   Вверх
_hunter
Дата 31.1.2005, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



на сколько больше?
до двух ( или 4-х ) гигов спокойно можно читать -- пусть у винды голова болит что с этими данными делать.
+ нужно пересмотреть процесс -- может его оптимизировать можно


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Hroft
Дата 2.2.2005, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 20.10.2003
Где: Москва

Репутация: 1
Всего: 3



Его скорее всего не только можно, но и нужно оптимизировать. Я так думаю, дело вообще не в винте, а в том, что он делает с этими данными.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0793 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.