2017-02-02 12 views
0

私はPythonスクリプトを実行する〜100のXMLファイルを持っています。スクリプトは各XMLファイルのサブプロセス呼び出しを行います。ファイルを作成してから削除する方が早いのですか?

ユーザー入力に基づいてXMLファイルを編集する必要があります。元のXMLファイルを編集したくないので(私のレポにプッシュするときに変更として表示されます)、新しいXMLファイルを作成し、元のXMLファイルの内容をコピーして新しいパラメータを追加してからサブプロセス呼び出しを行う。

私のプログラムは、ファイルを作成/削除してから時間がかかります。元のXMLファイルを編集せずにスクリプトを高速化して変更する方法はありますか?

編集:私はWindows上にいる

ありがとう!

+0

ファイルの末尾に追加していない場合は、1)読み取り、2)変更、3)ファイルの書き込みが必要です。まったく別のことをしています... ...?代替の角度:実行中のファイルシステムによっては、ファイルシステムがコピーオンライトメカニズムをサポートしている場合、ベアメタルファイルシステムのファイルコピーコマンドが瞬間的に多くなることがあります。しかし、それはほとんどのOSのデフォルトのファイルシステムではまだまれです。 – deceze

+0

呼び出しているプログラムはファイルの内容を 'stdin'で受け入れますか?もしそうなら、それをメモリから送ることができます。 –

+0

メモリ内のXMLツリーを編集し、それをサブプロセス呼び出しに渡すことはできますか? –

答えて

0

もう1つの方法は、ramdiskです。ファイルをramdiskにコピーし、編集し、スクリプトを実行してから削除することができます。この場合、唯一の入出力操作はファイルを読み取ることです。

Linuxを実行している場合、あなたが行うことができます:

mkdir /mnt/ramdisk 
mount -t tmpfs -o size=512m tmpfs /mnt/ramdisk 

その後、あなたのファイル操作のためには/ mnt/RAMディスクを使用します。

Windowsを実行している場合は、ImDiskなどのソフトウェアを使用して、RAMディスクを作成できます。

メモ:RAMディスクを使用すると、I/Oコストを削減できます。しかしまず第一に、I/Oがスクリプトのパフォーマンスのボトルネックであることを確認する必要があります。さもなければそれは多くの助けにはなりません。

関連する問題