效能特色

呼叫IPropertySetStorage介面的 COM 複合檔案實作,以建立屬性集會導致透過呼叫IStorage::CreateStream 或 IStorage::CreateStorage建立資料流程或儲存體。 預設屬性集會在記憶體中建立,但不會排清到磁片。 當呼叫 IPropertyStorage::WriteMultiple時,它會在緩衝區內運作。

開啟屬性集時,會使用 IStorage::OpenStreamIStorage::OpenStorage 。 整個屬性集資料流程會讀取到連續記憶體中。 IPropertyStorage::ReadMultiple 作業接著會讀取記憶體緩衝區來運作。 因此,因為磁片讀取) 但後續存取非常有效率,因此第一次存取在時間方面成本很高 (。 寫入的成本可能會稍微高一點,因為基礎資料流程上的 SetSize 作業可能需要確保加入資料時可以使用磁碟空間。

不保證 IPropertyStorage::WriteMultiple 是否會排清更新。 一般而言,用戶端應該假設 IPropertyStorage::WriteMultiple 只會更新記憶體緩衝區中的 。 若要排清資料,應該呼叫 IPropertyStorage::CommitIUnknown::Release (上次發行) 。

此設計表示 WriteMultiple 可能會成功,但資料實際上不會持續寫入。

注意

屬性集資料流程的大小不能超過 256K 個位元組。