![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
例えば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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アルファベットに付いて質問し...
-
bashスクリプト
-
Perlのプログラムについて
-
perlをバージョンアップしたら...
-
Wコロン
-
プログラミングでポインタの勉...
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlについて
-
perlのrequireの動き方について...
-
perlの構文でカンマの意味が分...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
無料配布の郵便番号自動入力cgi...
-
perlプログラムが動かない
-
ディレクトリ名の変更
-
Perl で ディレクトリ及びサブ...
-
Perl-CGI で排他制御はどうすれ...
-
エラーログ「\\x8ew\\x92\\xe8...
-
LWPのインストール
-
コマンドプロンプトからperlを...
-
Perlファイルテスト演算子が正...
-
perl上からfindを使い検索した...
-
perlのcdについて
-
VBAでCSVファイルを途中行まで...
-
エクセルVBA コードが同じでも...
-
VBAでCSVファイルの特定行を書...
-
ExcelをCSV書き出す場合のシー...
-
awkスクリプトでダブルクォーテ...
-
batファイルでrenameができませ...
-
エクセルVBAで素数だけを出力す...
-
ReadLineでの読み出し行を指定する
-
バッチファイルの作り方(CSV→...
おすすめ情報