Поделиться через


Характеристики производительности

Вызов реализации составного файла COM интерфейса IPropertySetStorage для создания набора свойств приводит к созданию потока или хранилища с помощью вызова IStorage::CreateStream или IStorage::CreateStorage. Набор свойств по умолчанию создается в памяти, но не сбрасывается на диск. При вызове метода IPropertyStorage::WriteMultiple он работает в буфере.

При открытии набора свойств используется IStorage::OpenStream или IStorage::OpenStorage . Весь поток набора свойств считывается в непрерывную память. Затем операции IPropertyStorage::ReadMultiple выполняются путем считывания буфера памяти. Таким образом, первый доступ является дорогостоящим с точки зрения времени (из-за операций чтения диска), но последующие доступы очень эффективны. Операции записи могут быть немного дороже, так как операции SetSize в базовом потоке могут потребоваться для обеспечения доступности дискового пространства при добавлении данных.

Нет гарантий того, будет ли IPropertyStorage::WriteMultiple сбрасывать обновления. Как правило, клиент должен предполагать, что IPropertyStorage::WriteMultiple обновляет только буфер в памяти. Для очистки данных необходимо вызвать IPropertyStorage::Commit или IUnknown::Release (последний выпуск).

Эта конструкция означает, что WriteMultiple может завершиться успешно, но данные на самом деле не записываются постоянно.

Примечание

Этот размер потока набора свойств не может превышать 256 000 байт.