私はpythonを使用していますが、ドキュメントのインデックスを作成するとき(検索エンジン用)には大量のRAMが必要です。インデックス作成プロセスを停止した後も、メモリはまだいっぱいです(8GBのRAMなど)。検索エンジンを常に動作させ、インデックス作成が終了したときに OS をリセットしないようにする必要があるため、これは悪いことです。巨大な配列、辞書、リストを管理する効率的な方法と、それらを解放する方法はありますか? 何か案は?
stackoverflow でそれに関するいくつかの質問も見ましたが、それらは古いものです:
Python でのメモリ割り当てのプロファイル (Numpy 配列のサポートあり)
情報:
free -t
total used free shared buffers cached
Mem: 5839 5724 114 0 15 1011
-/+ buffers/cache: 4698 1141
Swap: 1021 186 835
Total: 6861 5910 950
top | grep python
3164 root 20 0 68748 31m 1404 R 17 0.5 53:43.89 python
6716 baddc0re 20 0 84788 30m 1692 S 0 0.5 0:06.81 python
ps aux | grep python
root 3164 57.1 0.4 64876 29824 pts/0 R+ May27 54:23 python SE_doc_parse.py
baddc0re 6693 0.0 0.2 53240 16224 pts/1 S+ 00:46 0:00 python index.py
uptime
01:02:40 up 1:43, 3 users, load average: 1.22, 1.46, 1.39
sysctl vm.min_free_kbytes
vm.min_free_kbytes = 67584
本当の問題は、スクリプトを開始するとインデックス作成が高速になることですが、使用量が増えると遅くなります。
Document wikidoc_18784 added on 2012-05-28 01:03:46 "fast"
wikidoc_18784
-----------------------------------
Document wikidoc_21934 added on 2012-05-28 01:04:00 "slower"
wikidoc_21934
-----------------------------------
Document wikidoc_22903 added on 2012-05-28 01:04:01 "slower"
wikidoc_22903
-----------------------------------
Document wikidoc_20274 added on 2012-05-28 01:04:10 "slower"
wikidoc_20274
-----------------------------------
Document wikidoc_23013 added on 2012-05-28 01:04:53 "even more slower"
wikidoc_23013
ドキュメントのサイズは、最大 1 ページまたは 2 ページのテキストです。10 ページのインデックス作成には約 2 ~ 3 秒かかります。
Tnxの皆さん、助けてください:)