Compter les lignes dans un fichier en Java : une approche optimisée
En traitement de données, il est souvent nécessaire de déterminer le nombre de lignes dans un déposer. Alors que les méthodes traditionnelles impliquent de lire chaque ligne individuellement, cette approche peut prendre du temps. Ici, nous explorons une solution plus efficace.
La clé pour optimiser le comptage de lignes réside dans l’évitement des lectures de lignes inutiles. Une technique consiste à utiliser un flux d'entrée mis en mémoire tampon et un tableau de caractères pour lire les données en morceaux. Au fur et à mesure de la lecture du fichier, chaque octet est examiné et les sauts de ligne sont comptés.
Une de ces implémentations, connue sous le nom de countLinesOld, effectue cette tâche efficacement. Il initialise un tableau d'octets de taille 1024 et lit le fichier par morceaux de cette taille. En se concentrant uniquement sur les sauts de ligne au sein de ces morceaux, cela réduit considérablement le nombre d'opérations de lecture.
Une optimisation plus récente, countLinesNew, améliore encore cette approche. Il exécute la même stratégie que countLinesOld mais garantit que la boucle est optimisée par le compilateur en utilisant une condition spécifique. Cette version surpasse systématiquement les autres solutions, en particulier pour les fichiers volumineux.
Les résultats de référence démontrent la supériorité de countLinesNew et countLinesOld par rapport au LineNumberReader couramment utilisé. Lors des tests sur un fichier texte de 1,3 Go, countLinesNew a systématiquement obtenu les résultats les plus rapides, tandis que countLinesOld avait quelques valeurs aberrantes mais présentait également de meilleures performances.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!