私はpython3.3を使用しています.20MBのファイルが10個あるディレクトリを読み込むために、スレッドプールエグゼキュータを最大10個のスレッドで使用して、読み込むファイルを送信しています。私は1Mbのチャンクを一度に読み込み、すべてのファイルの各行をスレッドセーフリストに保存しています。一番上のコマンドを見ると、CPU使用率はかなり高いです。任意の提案を100%上回り、CPU使用率を削減します。以下はスニペットです。CPU使用率を減らす
all_lines_list = []
while True:
with concurrent.futures.ThreadPoolExecutor(max_workers=10) as executor:
for each_file in file_list:
executor.submit(trigger, each_file)
def trigger(filename):
with open(filename, "r")as fp:
buff = fp.read(1000000)
buff_lines = buff.split('\n')
time.sleep(0.2)
for each_line in buff_lines:
all_lines_list.append(each_line)
「CPU使用率を減らすための提案」 - スレッド数を少なくする! –
実際には、ディレクトリ内に100を超えるファイルが存在する可能性があります。そのため、いくつかの高速処理には10個のスレッドが必要です。 –
あなたの質問に対するタイトルが「CPU使用率の向上」に関する「CPU使用率の増加」の理由は何ですか? – selbie