2016-05-21 14 views
0

私は、100k行以上の8MBファイルを読み込み、100行のチャンクで表示するPerl/CGIスクリプト(ページネーションを使用)に取り組んでいます。次のいずれかがファイル処理を最適化する方法は?

  1. 配列に全入力ファイルを格納し、各ページの100行を抽出する(配列スライスを使用して)

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

    又は

  2. 速くなり

  3. 各ページについて、sedコマンドを使用して、ユーザーが表示する100行を抽出します。

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

すでにセッション管理を行っている場合は、100行ブロックごとに「シーク」ポイントを保存する必要があります。 – Borodin

+4

両方を試してみてください。答えはあなたのシステムに大きく依存することになり、我々はそれにアクセスすることはできません。 –

+0

また、CGIと速度はまったく同義語ではありません。永続的な環境でスクリプトを実行します。 – jira

答えて

0

あなたが本当にパフォーマンスがその後、CGIを使用しない場合は、リクエスト間でメモリ内のデータの永続的なコピーを保持し、何かを使用してみてください。最近は8MBという小さなものですが、リクエストごとにロードすることは賢明ではなく、ファイル全体をスキャンすることもありません。 Modperlはこれを行う古い方法でした。それはWebサーバーに埋め込まれたPerlインタプリタでした。新しい方法は触媒やダンサーを使用することです。これらの指示はこの返答の範囲外です。これが時折使用されるだけで、使用を制限するためにパスワードで保護されていれば、CGIを使用することで逃げることができます。