Ограничения метода отображения файлов

Ограничения метода отображения файлов

Как уже отмечалось ранее, отображение файлов является весьма мощным и полезным средством. Существующая в Windows диспропорция между 64-битовой файловой системой и 32-битовой адресацией снижает ценность обеспечиваемых этим средством преимуществ; Win64 свободен от этих ограничений.

Основная проблема заключается в том, что при больших размерах файлов (в данном случае, свыше 2—3 Гбайт) отображение всего файла на пространство виртуальной памяти становится невозможным. Более того, не будут доступны даже все 3 Гбайт, поскольку часть виртуального адресного пространства распределяется для других целей, а суммарный объем доступных смежных блоков будет гораздо меньше теоретического максимума. Win64 в значительной степени снимает это ограничение.

При работе с большими файлами, для которых объект отображения не может быть создан целиком, необходимо предусматривать отдельный программный код, осуществляющий отображение и отмену отображения соответствующих участков файла по мере необходимости. По сложности реализации такая методика сопоставима с организацией управления буферами в памяти, хотя необходимость в выполнении явных операций чтения и записи в данном случае отсутствует.

Двумя другими существенными недостатками метода отображения файлов являются следующие:

• Размер объекта отображения не может увеличиваться. Создавая объект отображения, вы должны заранее определить, какой максимальный размер вам может понадобиться, но во многих случаях сделать это трудно или вообще невозможно.

• Невозможно распределить память в пределах области, занимаемой представлением объекта отображения, не создав для этого собственные функции управления памятью. Было бы очень удобно, если бы существовал способ задавать объект отображения файла и указатель, возвращаемый функцией MapViewOfFile, с последующим получением дескриптора кучи. 

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

33. Поля данных объекта и формальные параметры метода

Из книги Информатика и информационные технологии автора Цветкова А В

33. Поля данных объекта и формальные параметры метода Выводом из того факта, что методы и их объекты разделяют общую область действия, является то, что формальные параметры метода не могут быть идентичными любому из полей данных объекта. Это является не каким-то новым


Вариации метода Main()

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Вариации метода Main() Предыдущий вариант Main() был определен с одним параметром (массивом строк) и возвращал данные типа int. Однако это не единственно возможная форма Main(). Для построения точки входа приложения можно использовать любую из следующих сигнатур (в предположении,


Генерирование метода HelloWorld()

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

Генерирование метода HelloWorld() Наконец, рассмотрим задачу генерирования метода SayHello(). Первой задачей здесь оказывается получение типа MethodBuilder из переменной helloWorld-Class. После этого определяется указанный метод и получается ILGenerator, позволяющий добавить соответствующие


Реализация Web-метода TellFortune()

Из книги Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT автора Фролов Александр Вячеславович

Реализация Web-метода TellFortune() Ваш Web-сервис XML MagicEightBall будет имитировать классическую говорящую игрушку, сообщающую предсказания. Для этого добавьте в класс Service следующий метод (существующий Web-метод HelloWorld() можно удалить).[WebMethod]public string TellFortune(string вопросПользователя) { string[]


Описание Web-метода с помощью свойства Description

Из книги Создание шаблонов Joomla автора Автор неизвестен

Описание Web-метода с помощью свойства Description Как и в случае атрибута [WebService], свойство Description атрибута [WebMethod] позволяет описать функциональные возможности Web-мeтoдa.public class Service: System.Web.Services.WebService { [WebMethod(Description = "Вычитание целых чисел.")] public int Subtract (int x, int y) { return x – y;


10.6. Выбор метода

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

10.6. Выбор метода Выше последовательно были рассмотрены системные и пользовательские файлы конфигурации, переменные окружения и аргументы командной строки — направление от конфигурации, которую изменить сложнее, к конфигурации, изменяемой проще. Имеется четкое


Добавление к классу нового метода

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Добавление к классу нового метода Чтобы добавить в класс новый метод, выберите из временного меню строку Add Function. На экране появится диалоговая панель Add Member Function, представленная на рисунке 2.15. Рис. 2.15. Диалоговая панель Add Member FunctionВ поле Function Type следует ввести тип значения,


Изменение отображения HTML без изменения базовых файлов

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

Изменение отображения HTML без изменения базовых файлов Для того чтобы решить проблему разметки информации при выводе в HTML страницу в виде таблиц, как правило, нужно вносить изменения в базовые файлы. Этот метод позволит убрать таблицы из модуля входа в систему, однако, при


10.6. Выбор метода

Из книги VBA для чайников автора Каммингс Стив

10.6. Выбор метода Выше последовательно были рассмотрены системные и пользовательские файлы конфигурации, переменные окружения и аргументы командной строки — направление от конфигурации, которую изменить сложнее, к конфигурации, изменяемой проще. Имеется четкое


Объекты отображения файлов

Из книги C++. Сборник рецептов автора Диггинс Кристофер

Объекты отображения файлов Сначала необходимо создать для открытого файла объект отображения файла (file mapping object), у которого имеется дескриптор, а затем отобразить этот файл или только некоторую его часть на виртуальное адресное пространство процесса. Объектам


Пример: последовательная обработка файлов с использованием метода отображения

Из книги автора

Пример: последовательная обработка файлов с использованием метода отображения Программа atou (программа 2.4) иллюстрирует последовательную обработку файлов на примере преобразования ASCII-файлов к кодировке Unicode, приводящего к удвоению размера файла. Этот случай является


10.1.16. Применение метода readpartial

Из книги автора

10.1.16. Применение метода readpartial Метод readpartial появился сравнительно недавно с целью упростить ввод/вывод при определенных условиях. Он может использоваться с любыми потоками, например с сокетами.Параметр «максимальная длина» (max length) обязателен. Если задан параметр buffer, то


Определение диапазонов с помощью метода Range

Из книги автора

Определение диапазонов с помощью метода Range Если существующие объекты не содержат текст, с которым вы хотите работать, создайте собственный объект Range. В любом открытом документе вы сможете определить столько объектов Range, сколько вам нужно. При этом используется метод


8.12. Написание шаблона метода класса

Из книги автора

8.12. Написание шаблона метода класса ПроблемаИмеется один метод, который должен принимать параметр любого типа, и невозможно ограничиться каким-либо одним типом или категорией типов (используя указатель на базовый класс).РешениеИспользуйте шаблон метода и объявите