2つのファイルを読み取って処理するPerlスクリプトがあります。
最初のファイル-情報ファイル-ハッシュとして保存します(3.5 GB)
2番目のファイル(taregtファイル)は、情報ファイルおよび他のサブルーチンからの情報を設計どおりに使用して処理しています。(このファイル、ターゲット、範囲は30〜60 GB)
これまでの作業は次のとおりです。
- 情報ファイルをハッシュに読み込む
- ターゲットファイルをチャンクに分割する
すべてのチャンクで並行して実行したい:
while(chunks){
# do something
sub a {}
sub b {}
}
したがって、基本的には、チャンクを読み取り、その出力を書き込み、同時に複数のチャンクに対してこれを実行したいと思います。whileループは、チャンクファイルの各行を読み取り、処理のためにさまざまなサブルーチンを呼び出します。
バックグラウンドでチャンクを読み取る方法はありますか?
3.5GBの長さで、毎回3.5GBを占めるハッシュに読み込んでいるため、チャンクごとに情報ファイルを読みたくありません。
現在、スクリプトは30〜60GBで実行するのに1〜2時間かかります。