Vous pouvez supposer que le fichier lu dans la classe FileStorage
de OpenCV est suffisamment bien réglée pour la performance.
Ce qui devrait vous inquiéter le plus, c'est que vous avez vraiment besoin des finesses de FileStorage
. L'inconvénient de l'utilisation de cette méthode est qu'une grammaire complète YAML
/XML
parser sera exécuté sur votre gros fichier. Ce sera à mon avis beaucoup plus lent que le temps nécessaire pour lire le fichier sur le disque. Mon conseil est que si vous êtes vraiment à la recherche de lectures rapides à partir de disques et d'une utilisation immédiate (pas d'analyse requise), je vous conseille de stocker vos données dans des fichiers binaires. L'avantage d'utiliser de tels fichiers est que le seul moment passé à lire les fichiers, vous n'avez pas à les analyser. Vous pouvez lire immédiatement un C struct
ou un C++ class
. Cependant, l'inconvénient est que si vous écrivez vos données dans un fichier binaire, vous risquez de rencontrer des erreurs vraiment irritantes lorsque vous migrez vers une autre machine (architecture différente), en particulier avec l'endianness, ou peut-être même une longueur variable de int
type. Mais à mon avis, ce sera rare, car la plupart des gens utilisent des processeurs compatibles Intel ou Intel de toute façon.
[Ceci] (http://stackoverflow.com/questions/293672/reading-files-larger-than-4gb-using-c-stl) peut aider. –
@Krishna Je le lis en utilisant FileStorage d'opencv. Pouvez-vous s'il vous plaît me donner un exemple? \ – 2vision2