성능 특징
IPropertySetStorage 인터페이스의 COM 복합 파일 구현을 호출하여 속성 집합을 만들면 IStorage::CreateStream 또는 IStorage::CreateStorage 호출을 통해 스트림 또는 스토리지가 만들어집니다. 기본 속성 집합은 메모리에 만들어지지만 디스크로 플러시되지는 않습니다. IPropertyStorage::WriteMultiple에 대한 호출이 있는 경우 버퍼 내에서 작동합니다.
속성 집합이 열리면 IStorage::OpenStream 또는 IStorage::OpenStorage 가 사용됩니다. 전체 속성 집합 스트림은 연속 메모리로 읽혀집니다. 그런 다음, IPropertyStorage::ReadMultiple 작업은 메모리 버퍼를 읽어 작동합니다. 따라서 첫 번째 액세스는 시간 측면에서 비용이 많이 들지만(디스크 읽기로 인해) 후속 액세스가 매우 효율적입니다. 데이터가 추가될 경우 디스크 공간을 사용할 수 있도록 기본 스트림에 대한 SetSize 작업이 필요할 수 있으므로 쓰기 비용이 약간 더 많이 들 수 있습니다.
IPropertyStorage::WriteMultiple이 업데이트를 플러시할지 여부에 대한 보장은 없습니다. 일반적으로 클라이언트는 IPropertyStorage::WriteMultiple 이 메모리 내 버퍼의 만 업데이트한다고 가정해야 합니다. 데이터를 플러시하려면 IPropertyStorage::Commit 또는 IUnknown::Release (마지막 릴리스)를 호출해야 합니다.
이 디자인은 WriteMultiple 이 성공할 수 있지만 데이터가 실제로 영구적으로 기록되지 않음을 의미합니다.
참고
속성 집합 스트림의 이 크기는 256K 바이트를 초과할 수 없습니다.