crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

chereppiter
  опции профиля:
сообщение 21.11.2012, 14:26
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 30
Регистрация: 12.11.2012
Пользователь №: 3595

Спасибо сказали: 0 раз(а)




Репутация:   0  


Народ, в Qt есть какие-нибудь функции/классы для работы с виртуальной памятью? Что-нибудь наподобие VirtualAlloc в Win32 API. Есть необходимость выделять в программе большие объёмы памяти, теоретически до нескольких гигабайт.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Iron Bug
  опции профиля:
сообщение 23.11.2012, 15:36
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Не знаю, как именно это реализовано в Qt, но под вендой, например, работа с файлами с отображением в память оптимизируется через задание смещения начала и размера отображаемого участка, если требуется читать не весь файл. А временные файлы через API венды вообще создаются в памяти и только при нехватке памяти кэшируются в
своп. Я работала с многогигабайтными файлами изображений через API - вполне сносная скорость была.

А самые быстрые кроссплатформенные функции работы с файлами - в СRT: fopen, fread, fwrite, fseek. Они просто раз в десять шустрее всех потоковых C++-ных наворотов. Если нужно много скакать по файлу c чтением и записью, то лучше их заюзать. И установить размер буфера через setvbuf.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 20.7.2025, 0:56