例えば1つのディレクトリに10万個の画像があった場合に、同じディレクトリ内にperlで新しい画像を作ったり削除したりすると、処理速度が遅くなってしまいます。(作成や削除に時間がかかったりする)
違うディレクトリではスムーズに画像を作成したり、削除したりできるのですが、大量のファイルがあった場合は遅くなってしまうようです。
perlでファイルを作ったり削除するのに、ファイル数が多いからという理由で速度が遅くなるものでしょうか。
また、何か対策をご存知であれば教えていただけると嬉しく思います。
よろしくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
ディレクトリの中から目的のファイルを探すための時間に、差が出る可能性は有ります。
ただ、単に「指定した名前のファイルを削除」とかだったら、極端に遅くなるとは考えられません。
何か、他の処理で時間がかかっているのでは?
例えば、「削除対象のファイルかどうかを、全部のファイルについて個々に調査している」とか
この回答への補足
ありがとうございます。
>例えば、「削除対象のファイルかどうかを、全部のファイルについて個々に調査している」とか
こちらは全部のファイルから対象のファイルがあるかどうかの存在確認をしてといった意味でしょうか?
もしそうでしたら、そういう風な使い方はしております。
このような場合は速度が落ちてしまうものなのでしょうか。
No.2
- 回答日時:
遅くなりませんよ。
RAMDISKでファイルアクセスを実験したので参考程度ですが、10万個のファイルのあるディレクトリで、perlで1万回ファイル作成と削除を繰り返しても0.2秒程度です。
$ cat hoge.sh
mkdir -p /tmp/file_test
cd /tmp/file_test
touch test_{1..100000}.txt
time perl -e 'for (1 .. 10000){open my $fh, ">", "hoge.txt"; print {$fh} "hoge"; close $fh; unlink "hoge.txt";}'
$ bash hoge.sh
real0m0.202s
user0m0.068s
sys0m0.132s
調査していただきありがとうございます。
他に原因があるのかやってみましたが、やはり遅くなってしまいます。
再度最初からやってみたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux JSLinuxについて。 Linuxのこの手順のプログラミングは合っているでしょうか。 ①ホームディ 2 2022/06/20 15:33
- フリーソフト サイトで使用していない画像ファイルの削除ソフトを探しています。 3 2023/04/05 10:49
- その他(開発・運用・管理) フォルダの中にファルダを作成してファイルを格納するバッチコマンド 1 2022/06/30 11:39
- その他(開発・運用・管理) バッチファイルで特定のファイル・ディレクトリ以外を削除する方法について 4 2022/05/31 14:03
- Google Drive USB内の圧縮フォルダが開けません。教えて下さい! 1 2022/07/26 18:44
- Google Drive Googleドライブで削除できないファイルがある。 5 2023/05/11 09:39
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Outlook(アウトルック) アイホンで撮った写真を一枚だけPCに移し画像を縮小してWebメールに添付して送信する方法 1 2022/04/22 15:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
- Android(アンドロイド) Googleのファミリーリンクの危険性に気付いてしまったのですが、皆さんの感想を教えてください! 2 2023/05/09 10:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
LWPのインストール
-
エラーログ「\\x8ew\\x92\\xe8...
-
VBAで巨大なファイルの途中から...
-
Perl 時間同士の差
-
バッチファイルの作り方(CSV→...
-
ファイル出力をUTF8Nではなくて...
-
正規表現で"-" "0-9"以外を削除...
-
ファイル名を複数個配列で確保...
-
ADOによるCSVファイルからのデ...
-
fopen64について
-
自動更新
-
<br />と<p></p>の使い方
-
VBA テキストファイルを読み取...
-
ExcelをCSV書き出す場合のシー...
-
画像をバイナリデータに変換す...
-
メールアドレス登録の重複をチ...
-
HTMLのフォームで画像と文...
-
perlでcsvの出力について
-
Perl<->Oracle間での文字化けに...
-
Perlで特定文字列から特定文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perlからのexcel読み込み
-
無料配布の郵便番号自動入力cgi...
-
readdir におけるフルパスでの...
-
エラーログ「\\x8ew\\x92\\xe8...
-
Perlファイルテスト演算子が正...
-
perl system関数 引数 フォルダ
-
perl上からfindを使い検索した...
-
コマンドプロンプトからperlを...
-
unlink 、renameが使えない理由
-
バッチファイルの作り方(CSV→...
-
awkスクリプトでダブルクォーテ...
-
VBAでCSVファイルの特定行を書...
-
DOSコマンドで、標準出力を出力...
-
ExcelをCSV書き出す場合のシー...
-
openした後、closeしないでプロ...
-
close()で例外が投げられる理由
-
batファイルでrenameができませ...
-
VBAでCSVファイルを途中行まで...
-
window.open でのファイル指定方法
-
VBAで巨大なファイルの途中から...
おすすめ情報