Caractéristiques de performances

Un appel à l’implémentation de fichier composé COM de l’interface IPropertySetStorage pour créer un jeu de propriétés entraîne la création d’un flux ou d’un stockage via un appel à IStorage::CreateStream ou IStorage::CreateStorage. Un jeu de propriétés par défaut est créé en mémoire, mais pas vidé sur le disque. Lorsqu’il y a un appel à IPropertyStorage::WriteMultiple, il fonctionne dans la mémoire tampon.

Lorsqu’un jeu de propriétés est ouvert, IStorage::OpenStream ou IStorage::OpenStorage est utilisé. Le flux de jeu de propriétés entier est lu dans la mémoire contiguë. Les opérations IPropertyStorage::ReadMultiple fonctionnent ensuite en lisant la mémoire tampon. Par conséquent, le premier accès est coûteux en termes de temps (en raison des lectures sur disque), mais les accès suivants sont très efficaces. Les écritures peuvent être légèrement plus coûteuses, car les opérations SetSize sur le flux sous-jacent peuvent être nécessaires pour garantir que l’espace disque est disponible si des données sont ajoutées.

Aucune garantie n’est apportée quant à la possibilité qu’IPropertyStorage::WriteMultiple vide les mises à jour. En général, le client doit supposer que IPropertyStorage::WriteMultiple met uniquement à jour la mémoire tampon dans la mémoire tampon. Pour vider les données, IPropertyStorage::Commit ou IUnknown::Release (dernière version) doit être appelé.

Cette conception signifie que WriteMultiple peut réussir, mais que les données ne sont pas écrites de manière permanente.

Notes

Cette taille du flux de jeu de propriétés ne peut pas dépasser 256 000 octets.