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 n’est 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’intégralité du flux de jeu de propriétés 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 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 quant à savoir si IPropertyStorage::WriteMultiple vide les mises à jour. En général, 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é.

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

Notes

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