まずはご清聴ありがとうございました。私の質問は、コードの実行時間を短縮する方法です。
関連するコードは次のとおりです。以下のコードは、メインから繰り返し呼び出されます。
def call_prism(prism_input_file,random_length):
prism_output_file = "path.txt"
cmd = "prism %s -simpath %d %s" % (prism_input_file,random_length,prism_output_file)
p = os.popen(cmd)
p.close()
return prism_output_file
def main(prism_input_file, number_of_strings):
...
for n in range(number_of_strings):
prism_output_file = call_prism(prism_input_file,z[n])
...
return
コードのプロファイルを作成するときに、「プロファイル統計ブラウザー」からの統計を使用しました。「ファイルを閉じる」システムコマンドに最大時間(14.546秒)かかりました。call_prismルーチンは10回呼び出されます。しかし、number_of_stringsは通常数千であるため、私のプログラムは完了するのに多くの時間がかかります。
さらに情報が必要な場合はお知らせください。ちなみに私もサブプロセスでやってみました。ありがとう。