Partager via


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 existe 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é. L’ensemble du flux de jeu de propriétés est lu en mémoire contiguë. opérations IPropertyStorage ::ReadMultiple ensuite fonctionner en lisant la mémoire tampon. Par conséquent, le premier accès est coûteux en termes de temps (en raison de lectures de 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 pour déterminer si IPropertyStorage ::WriteMultiple vide les mises à jour. En règle générale, le client doit supposer que IPropertyStorage ::WriteMultiple met uniquement à jour la mémoire tampon. Pour vider les données, IPropertyStorage ::Commit ou IUnknown ::Release (dernière version) doit être appelée.

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

Note

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