2016-05-21 3 views
0

Я работаю над сценарием Perl/CGI, который читает 8 МБ-файл с более чем 100 тыс. Строк и отображает его в виде фрагментов из 100 строк (с использованием разбивки на страницы).Как оптимизировать обработку файлов?

Какие один из следующих будет быстрее

  1. Сохранения всего входного файла в массив и извлечение 100 строк для каждой страницы (с использованием массива нарезки)

    my @extract = @main_content[101..200]; 
    

    или

  2. Для каждой страницы используется команда sed для извлечения любых 100 строк, которые пользователь хочет просмотреть.

    sed -n '101,200'p filename 
    
+5

Если у вас уже есть управление сеансом, вы должны сохранить точку поиска для каждого 100-строчного блока. – Borodin

+4

Попробуйте оба и узнайте. Ответ будет зависеть от вашей системы в значительной степени, и у нас нет доступа к этому. –

+0

Кроме того, CGI и скорость не являются точно синонимами. Запустите свой скрипт в постоянной среде. – jira

ответ

0

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

Смежные вопросы