Для быстрого чтения большого файла, который находится в гигабайтах в PERL

#perl

#perl

Вопрос:

В настоящее время мы читаем файл построчно, который задерживается для чтения и завершения для всех.

нам нужно было бы быстро прочитать файл и выполнить обработку нашими командами.

команды, которые я пытался использовать fork и array, просто отображают мне только первый набор строк и не переходят к другим наборам.

пожалуйста, помогите с этим.

Комментарии:

1. Что вы хотите с ним сделать, кроме как просто прочитать?

Ответ №1:

Чтение большого файла занимает довольно много времени — в конце концов, диски медленные. Прежде чем вы начнете изучать Perl, сначала попробуйте (при условии, что вы используете систему типа unix):

 time cat /path/to/your/large/file >/dev/null
  

Вывод сообщит вам, сколько времени требуется, чтобы просто прочитать этот файл с диска, ничего с ним не делая. В качестве альтернативы, откройте файл в вашем любимом текстовом редакторе и определите, сколько времени потребуется для загрузки. Как только у вас появится это время, сравните его с тем, сколько времени требуется вашей программе Perl для чтения файла. Если программа на Perl не занимает значительно больше времени, вы вряд ли сможете что-либо с этим сделать, потому что время тратится на получение данных с диска, а не на их обработку.

Конечно, это предполагает, что вам действительно нужно прочитать весь файл. Если вы можете обойтись чтением только определенных его частей, то вы могли бы создать индексный файл и использовать его для перехода непосредственно к интересующей части, но вы не предоставили нам достаточно информации, чтобы сказать, применимо ли это к вашему случаю или нет.

Если вам нужна более конкретная помощь, пожалуйста, предоставьте более подробное описание того, что вы собираетесь выполнить, и небольшой, доступный для выполнения фрагмент кода Perl, который показывает, как вы в данный момент читаете и обрабатываете файл, чтобы мы могли видеть, делаете ли вы что-то особенно неэффективное, что можно улучшить.