LINUX.ORG.RU

Какой допустипый размер файла для QFile::map() на x32

 , , ,


0

1

я тут давеча решил простестить прогу на своем стареньком P4, и она вылетела потому что QFile::map() вернул нулевой указатель.
я заметил, что при фейловых файлах разной длины QFile::error() возвращает разные коды ошибок: если файл больше 4G, то «Unspecified error occured», а если меньше, то «A resource error occured». Казалось вы «да, наверняка там происходит целочисленное переполнение, и влезут только файлы < 2G». А вот нет - нормально перевариваются файла, которые размером <= 2.58G (т.е. файл на 2.73 не переварился). Но все цифры очень примерны относительно реальных лимитов. Просто у меня только такие большие файлы есть. Сейчас проверю детальнее (поочередно у меньшая размер маппирумого пространства) и напишу сюда, какой реальный предел...

ну да, и вопрос %) может кто-нибудь объяснить такое поведение Qt?

★★★★★

Последнее исправление: post-factum (всего исправлений: 2)

может кто-нибудь объяснить такое поведение Qt?

люди в рассылке qt-interests

quiet_readonly ★★★★
()

А?

А причём тут Qt - вы упираетесь в ограничения x86 архитектуры.

Читайте из файла иначе - это ещё удивительно, что вам больше 2G ядро дало замапить - PAE и 3G памяти поди.

iab
()
Ответ на: комментарий от iab


PAE и 3G памяти поди.


да, так и есть...

я думал/думаю, что пожно попробовать мапить файл кусками по max_map_allowed, и читать из массива - так оно как-то по-красивше почучилось бы, чем стандарный прием читать файл «большими» кусками...
та прога есе еще пытается замапить (а какими кусками не вижу тюкю вывод убрал - кроме того, что он сам по себе замедлил бы тестик, так он еще и в ссх-сессии)

сейчас тогда просто попробую мапить по 1G и сдвигать итератор...

metawishmaster ★★★★★
() автор топика

Не используй QFile для хардкора, только С, только сисколлы

annulen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.