Amélioration de l'efficacité en désactivant la bufférisation des fichiers pour les fonctions d'E/S sur fichiers binaires
- Mise à jour2025-08-27
- Temps de lecture : 2 minute(s)
Pendant chaque opération d'E/S sur fichiers, LabVIEW prend quelques millisecondes pour appeler le système d'exploitation et demander un transfert de données en provenance et en direction d'un fichier sur disque. Ces millisecondes s'accumulent à chaque fois que LabVIEW appelle le système d'exploitation. Pour éviter ces répétitions ponctuelles, la plupart des systèmes d'exploitation fournissent un buffer permettant d'entreposer temporairement des données en attendant qu'elles soient lues ou écrites dans un fichier. Dès que le buffer est plein, le système d'exploitation effectue une seule opération d'E/S sur fichiers.
Le processus décrit dans le paragraphe précédent est appelé bufférisation et elle est activée par défaut dans LabVIEW. La bufférisation permet de réduire le nombre de fois que le système d'exploitation a accès au disque et de réduire ainsi le temps de traitement.
Quand désactiver la bufférisation
Dans certains cas, vous pouvez obtenir des débits de transfert de données plus rapides si vous désactivez la bufférisation. Par exemple, vous pouvez utiliser un RAID (Redundant Array of Independent Disks) pour augmenter la vitesse de traitement. Un RAID est un ensemble de disques durs auxquels le système d'exploitation peut accéder simultanément comme s'il s'agissait d'un seul disque, ce qui réduit les temps de lecture et d'écriture des données. Si vous accédez à un RAID alors que la bufférisation est activée, LabVIEW peut mettre plus de temps à copier les données vers le système d'exploitation qu'il ne faut à celui-ci pour les copier sur le disque. Vous pouvez désactiver la bufférisation avec l'entrée désactiver la bufférisation de la fonction Ouvrir/Créer/Remplacer un fichier pour éviter ces copies des données et forcer le système d'exploitation à les envoyer directement au disque.
Toutefois, si vous désactivez la bufférisation, assurez-vous que les conditions suivantes sont remplies :
- Vous devez faire de la taille des données dans le fichier un multiple de la taille, exprimée en octets, du secteur du disque qui contient éventuellement le fichier. Un secteur est une subdivision d'espace disque qui stocke une quantité fixe de données, en général 512 octets. Utilisez la sortie taille de secteur (octets) de la fonction Obtenir les infos sur le volume pour déterminer la taille de secteur du disque. Pour que LabVIEW puisse enregistrer des données sur un disque, ces données peuvent être enregistrées dans plusieurs secteurs, mais doivent remplir complètement chaque secteur. Un secteur de 512 octets requiert 512 octets de données. Si la taille de ces données n'est pas un multiple de la taille du secteur, vous devez combler les données jusqu'à l'obtention de la taille adéquate, puis supprimer cet excès avant que LabVIEW ne lise le fichier.
- Les données du fichier doivent être alignées sur un multiple de l'alignement exigé par le disque. LabVIEW aligne les données, et vous n'avez pas la possibilité de changer cet alignement. Si les données ne remplissent pas la condition d'alignement, LabVIEW renvoie une erreur et vous devez activer la bufférisation et rouvrir le fichier.