![]() |
|
![]() ![]() ![]() |
|
ParatroopeR |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 30.1.2005 Репутация: нет Всего: нет |
Итак, у меня есть задача. Обработать исходный файл *.txt весом 60 мегов. Алгоритм обработки довольно таки простой, но суть не в этом. Накодировал я всё нормально и алгоритм пашет как часы(но в этом и проблема!!!), то что на обработку файла уходят часы, а мне нужно нехило всё это дело ускорить. Смысл в чём, так как я не могу понять как запихнуть файл целиком в оперативу, чтобы повысить быстродействие. На данный момент обработка ведётся "порциями", в файле порядка 800 тысяч строк. Я вытаскиваю оттуда по 4000 строк, заношу данные в интовский массив 4000 на 2000. В итоге за 5 минут удаётся обработать порядка 20000 строк, сами понимаете чем это потом выливается. Если создавать массив больше компилятор ест. начинает орать. Может кто уже сталкивался с такой проблемой.
Вопрос: "Как запихнуть всё содержимое файла в ОП?" |
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
Распаралеливай процесс
|
|||
|
||||
ParatroopeR |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 30.1.2005 Репутация: нет Всего: нет |
[C++Error] Unexpected reply.
Этот вариант мне не подходит. Мне необходимо неоднократно обращаться к содержимому файла, паралель не паралель, хард от этого быстрее не станет. Может кто знает посерьёзней способ? Как запихнуть весь файл в ОП, это самый (Как мне кажется) правдоподобный способ увеличить производительность. Как сохранить в ОП около 1.5 миллиардов чисел? |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
CreateFileMapping() и MapViewOfFile() должны помочь
+ в чем проблема просто прочитать 60 метров ( это понты, на самом деле ) -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: нет Всего: 20 |
_hunter
Он наверное сказал про 60 метров с таким смыслом, что может быть и больше ![]() CreateFileMapping() и MapViewOfFile() - это подойдет, точно. |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
ну так и сказал бы как-то так: "длинной не меньше 60-ти метров ( предполагается 6 км )"
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
ParatroopeR |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 30.1.2005 Репутация: нет Всего: нет |
Да мне просто обращаться к нему надо около 1.5 миллиарда раз. Сами понимаете во, что превращается этот процесс.
Пойду попробую. Пока заранее спасибо. А то, что может быть и больше, чтож вполне может быть. |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
на сколько больше?
до двух ( или 4-х ) гигов спокойно можно читать -- пусть у винды голова болит что с этими данными делать. + нужно пересмотреть процесс -- может его оптимизировать можно -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
Hroft |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 20.10.2003 Где: Москва Репутация: 1 Всего: 3 |
Его скорее всего не только можно, но и нужно оптимизировать. Я так думаю, дело вообще не в винте, а в том, что он делает с этими данными.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |