2

ファイル システムでテキスト操作を行うスクリプトを実行します。

スクリプトはテキスト ファイル ( .h、.cpp ) で実行されます。

スクリプトを実行すると、ページ ファイルに割り当てられた VM の量に達するまで、PF の使用量が増加することがわかります。

実行中または実行後に VM をフラッシュする方法はありますか?

私はそれに関する別の質問を開きました(それは別の問題だと思いました): 複数の置換に対する単一のsedコマンド?

4

3 に答える 3

1

すべてをメモリにロードするだけでなく、メモリをより効率的に使用できるように、操作をチャンクまたはバッチにします。大きなファイルがない場合は、これらのファイルからテキストをメモリにロードするスレッドの数を制限します。大きなファイルを使用する場合は、ファイルを分割して、メモリを使用してより効率的に処理します。

于 2009-10-05T12:43:59.077 に答える
0

ページファイルはシステム リソースであり、どのユーザー プロセスからも操作できません。この場合、ページファイルのサイズが大きくなるのは、単にアプリケーションの問題の兆候です。アプリケーションがコミット制限を超えています。症状ではなく、問題に対処する必要があります。

于 2010-01-12T22:57:29.767 に答える
0

いいえ。ただし、スクリプトを変更してメモリの消費量を減らすことができるかもしれません。

更新します他の質問に記載されているスクリプトに対応する Linux で問題を再現しようとしました。バッシュの場合:

while read fileName; do

    echo
    echo -----------------------------------------------
    echo For file $fileName :

    while read matchItem; do
      echo  Searching for  $matchItem
      echo
      sed -i "s/$matchItem/XXXXXXXXX $matchItem XXXXXXXXXXXXXX/" $fileName
    done < allFilesWithH.txt

done < all.txt

タンパク質配列データベースのフラグメント (大きなテキスト ファイル、FASTA 形式、最大 74 MB) と短いペプチド配列をテストに使用しました (ファイルごとに少なくとも 10 個の置換があるように)。それが実行されている間、プロセスは重要なメモリを使用していません(私が予想するように)。実行中の CPU 負荷は 50% 程度です。したがって、問題を再現できません。

于 2009-10-05T12:43:47.953 に答える