![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
chereppiter |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 30 Регистрация: 12.11.2012 Пользователь №: 3595 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Народ, в Qt есть какие-нибудь функции/классы для работы с виртуальной памятью? Что-нибудь наподобие VirtualAlloc в Win32 API. Есть необходимость выделять в программе большие объёмы памяти, теоретически до нескольких гигабайт.
|
|
|
![]() |
Iron Bug |
![]()
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
Не знаю, как именно это реализовано в Qt, но под вендой, например, работа с файлами с отображением в память оптимизируется через задание смещения начала и размера отображаемого участка, если требуется читать не весь файл. А временные файлы через API венды вообще создаются в памяти и только при нехватке памяти кэшируются в
своп. Я работала с многогигабайтными файлами изображений через API - вполне сносная скорость была. А самые быстрые кроссплатформенные функции работы с файлами - в СRT: fopen, fread, fwrite, fseek. Они просто раз в десять шустрее всех потоковых C++-ных наворотов. Если нужно много скакать по файлу c чтением и записью, то лучше их заюзать. И установить размер буфера через setvbuf. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 20.7.2025, 0:56 |