J'ai un simple fichier texte qui fait ~150mb. Mon code lira chaque ligne, et si elle correspond à certaines regex, elle sera écrite dans un fichier de sortie. Mais pour l'instant, il faut beaucoup de temps pour parcourir toutes les lignes du fichier (plusieurs minutes) en procédant comme suit
File.open(filename).each do |line|
# do some stuff
end
Je sais que c'est le bouclage des lignes du fichier qui prend du temps car même si je ne fais rien avec les données dans "#do some stuff", cela prend toujours beaucoup de temps.
Je sais que certains programmes Unix peuvent analyser de gros fichiers comme celui-ci presque instantanément (comme grep), je me demande donc pourquoi ruby (IRM 1.9) prend autant de temps pour lire le fichier, et s'il y a un moyen de le rendre plus rapide ?