Использование файла подкачки - PullRequest
2 голосов
/ 05 октября 2009

Я запускаю скрипт, который выполняет манипулирование текстом в файловой системе.

Скрипт работает с текстовыми файлами (.h, .cpp).

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

Есть ли способ очистить виртуальную машину во время работы или после нее?

У меня есть еще один вопрос по этому поводу (думал, что это другой вопрос): Одиночная команда sed для множественных замен?

Ответы [ 3 ]

1 голос
/ 05 октября 2009

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

0 голосов
/ 13 января 2010

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

0 голосов
/ 05 октября 2009

Нет, но, возможно, вы можете изменить скрипт, чтобы он занимал меньше памяти.

Update . Я попытался воспроизвести проблему в 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 МБ) и короткие пептидные последовательности для теста (чтобы было не менее 10 замен на файл). Пока он работает, ни один процесс не использует сколько-нибудь значительную память (как я и ожидал). Загрузка процессора порядка 50% во время работы. Таким образом, я не могу воспроизвести проблему.

...