Очень большие массивы

Все, что вы хотели знать о программизме, но боялись спросить.
tasko
Графоман
Сообщения: 18705
Зарегистрирован: 20 июл 2003, 09:16
Откуда: Торонто

Re: Ответы:

Сообщение tasko »

MarkM писал(а): Может быть просто открывать файл как типизированный фаил и работать как с файлом? ОС будет кешировать ввдод/вывод сама. Физически то же самое будет с ММ файлом. В НТ можно открыть фаийл с опциями на последовательный или случайный доступ, дабы помоч ОС определиться с политикой кеширования и упреждаюшего чтения.
Ну есстественно читать надо по нескольку строк за раз дабы не терять на И/О коллах.
Я бы тоже остановился просто на работе с файлом. В зависимости от задачи можно создать какой-нибудь кольцевой буфер с фрагментами файла определенной достаточной длины. По 1-10 строк. Старые куски из буфера выбрасываешь, новые добавляешь. Думаю, можно оптимизировать достаточно качественно.
Аватара пользователя
aldep
Маньяк
Сообщения: 1593
Зарегистрирован: 18 фев 2003, 08:06
Откуда: Toronto
Контактная информация:

Сообщение aldep »

Работа именно через MMF во-первых удобнее, ибо не надо думать об аллокировании буфера, и чтения в него данных, во-вторых она быстрее, так как cache manager работает внутренне через MMF, и таким образом мы убираем еще один слой функций.
Майкрософт как раз рекомендует для производительности этот путь.
tasko
Графоман
Сообщения: 18705
Зарегистрирован: 20 июл 2003, 09:16
Откуда: Торонто

Сообщение tasko »

aldep писал(а):Работа именно через MMF во-первых удобнее
Про удобнее - это понятно, работаешь чисто с памятью, и голова не болит. Но не подойдет для твоего случая маппинг, как не крути. Хотя, конечно, "попытка - не пытка, правда, товарищ Берия?"

:)
Аватара пользователя
aldep
Маньяк
Сообщения: 1593
Зарегистрирован: 18 фев 2003, 08:06
Откуда: Toronto
Контактная информация:

Сообщение aldep »

tasko писал(а):
aldep писал(а):Работа именно через MMF во-первых удобнее
Но не подойдет для твоего случая маппинг, как не крути.
Почему?
MarkM
Пользователь
Сообщения: 113
Зарегистрирован: 24 сен 2003, 21:52

Сообщение MarkM »

tasko писал(а):
aldep писал(а):Работа именно через MMF во-первых удобнее
Про удобнее - это понятно, работаешь чисто с памятью, и голова не болит. Но не подойдет для твоего случая маппинг, как не крути. Хотя, конечно, "попытка - не пытка, правда, товарищ Берия?"

:)
[trn]Nu pochemu zhe? Mapit' okno, naprimer 1000 strok, i rabotat' s nim. Potom dvigat' dal'she.
Naskolko oto optimal'no - trudno skazat' ne znaja algoritma, haraktera dostupa k dannym.
Ne zrja vidat' bol'shie SUBD ne mapjat, a pishut-chitajut fajly blokami po 2..64Kb. Bylo-b vygodno - davno by uzhe mapili. [/trn]
Ответить