• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイル削除時におけるCPU使用率等について)

ファイル削除時のCPU使用率と重複ファイル削除ソフトについて

このQ&Aのポイント
  • ファイル削除時におけるCPU使用率や重複ファイルの削除について調査しました。質問文章の内容や問題点をまとめました。
  • CPU使用率や処理速度に関する問題や、保証期間内での利用について説明します。
  • 重複ファイルの検索・削除におすすめのソフトウェアを紹介します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.6

お礼に書かれていた質問ですが、 > 上記のBの場合、別に新しくフォルダーを作成して30個のファイルを1フォルダーにまとめても > ヘッドは30個分探して、削除していくのでしょうか > それとも、1フォルダーだけの削除で済むのでしょうか? 1フォルダーにまとまっているファイル群を削除する場合、属性はメモリにキャッシュされているので検索はヘッドの移動は皆無に近い程少ないけれど、ファイルを削除する回数は30回行われる事が多いと思います。(ドライバの実装次第ではまとめる条件が成立していたら減らしてくれる[複数の削除を一回にまとめて処理してくれる]場合があるかも) 普通に様々なフォルダへ散らばっていた場合にはファイル毎に検索・ヘッドの移動が伴い同じ30回の削除でも非常に多くの時間がかかります。 HDDの仕様書見るとわかりますが、シーク時間は非常に長いです。要するに離れた位置への磁気ヘッドの移動が伴えば数千倍の時間なんて簡単に掛かるという事です。 かなり簡略化してこんな事が行われるという事を書くと、 800セクタのHDDは8セクタ/1クラスタ(4KB[4096B]クラスタ)だとすると100クラスタとして管理されます。 全体の使われ方をFATという地図的なデータで管理し、個々のファイルをDirectoryとして管理します。 ※FAT(File Allocation Table)とDirectoryは管理領域。他の部分がデータ領域。簡略説明のためPBRなどは省いてます。 ※実際のFATの場合にはFAT12で1.5バイト(2クラスタ分を3バイトで表現)、FAT16で2バイトなど形式に依って変わります。 FATでフォーマットするとクラスタ1にFATを、クラスタ2にルートディレクトリ用のDirectory領域を作ります。 ここにabc.txtという10KBのファイルを作ると RootDirectory abc.txt F(種別はファイル) 3(データの開始位置は3クラスタ目から。) FAT M(FAT) M(RootDir) 4 5 -4 こんな感じでファイルが作られます。(Mは管理領域を・3クラスタ目の4はデータが4クラスタ目に続いている事を、4クラスタ目の5はデータが5クラスタ目に続いている事を、5クラスタ目の-4はファイルの最終クラスタで8セクタの内4セクタが使われている事を示しています。) ※10KBは4KBx2+2KB。2KBは512x4バイト。 追加でdefg.txtという15KBのファイルを作ると RootDirectory abc.txt F(種別はファイル) 3(データの開始位置は3クラスタ目から。) defg.txt F(種別はファイル) 6(データの開始位置は6クラスタ目から。) FAT 1:M(FAT) 2:M(RootDir) 3:4 4:5 5:-4 6:7 7:8 8:9 9:-6 今度はFolderAというフォルダを追加すると RootDirectory abc.txt F(種別はファイル) 3(データの開始位置は3クラスタ目から。) defg.txt F(種別はファイル) 6(データの開始位置は6クラスタ目から。) FolderA D(種別はDirectory) 10(Directory領域は10クラスタ目。) FAT 1:M(FAT) 2:M(Root[Dir]) 3:4 4:5 5:-4 6:7 7:8 8:9 9:-6 10:M(FolderA[Dir] FolderAの中に5KBのabc.txtと25KBのdefg.txtを作ると FolderADirectory abc.txt F(種別はファイル) 11(データの開始位置は11クラスタ目から。) defg.txt F(種別はファイル) 13(データの開始位置は13クラスタ目から。) ※実際にはファイルアトリビュートなどのものも書かれている。 FAT 1:M(FAT) 2:M(Root[Dir]) 3:4 4:5 5:-4 6:7 7:8 8:9 9:-6 10:M(FolderA[Dir] 11:12 12:-2 13:14 14:15 15:16 16:17 17:18 18:19 19:-2 今度はFolderBというフォルダを追加すると RootDirectory abc.txt F(種別はファイル) 3(データの開始位置は3クラスタ目から。) defg.txt F(種別はファイル) 6(データの開始位置は6クラスタ目から。) FolderA D(種別はDirectory) 10(Directory領域は10クラスタ目。) FolderB D(種別はDirectory) 20(Directory領域は20クラスタ目。) 削除はDirectory領域のファイル名を無効ファイル化するのみです。 例えばFolderAのdefg.txtを削除する場合には 削除前 FolderADirectory defg.txt F(種別はファイル) 13(データの開始位置は13クラスタ目から。) 削除後 FolderADirectory efg.txt F(種別はファイル) 13(データの開始位置は13クラスタ目から。) なので、同じ5つのファイルを削除するのにも 1. FolderA/abc.txt ヘッドは10番クラスタへ移動 2. FolderA/defg.txt ヘッド移動はなし 3. FolderA/hijkl.txt ヘッド移動はなし 4. FolderB/abc.txt ヘッドは20番クラスタへ移動 5. FolderB/defg.txt ヘッド移動はなし 1. FolderA/abc.txt ヘッドは10番クラスタへ移動 2. FolderB/abc.txt ヘッドは20番クラスタへ移動 3. FolderA/defg.txt ヘッドは10番クラスタへ移動 4. FolderB/defg.txt ヘッドは20番クラスタへ移動 5. FolderA/hijkl.txt ヘッドは10番クラスタへ移動 削除する順番に依ってヘッドの移動量は大きく変わります。 同じまとまっていてもフォルダが10個合って、クラスタ位置の小さい所から順番に削除が行われるのと、10個のフォルダではあっち移動しこっち移動しする方が移動距離はずっと長くなります。 ※同じフォルダにあるものだけでもまとめて消してもらえば随分ましになる。位置にまで配慮して消してくれると更に時間が減らせる。もっと言えば、同じディレクトリのファイルを削除する時まとめて一度に管理情報を書き換えれば更に速くなる。(この方法を取るには色々段取りが必要だし行儀の悪い方法使う必要があるのでここまではやらない事がほとんど) http://sakaijunsoccer.appspot.com/media/img/skills/program/pud/NTFS/ntfs-2.html NTFSはFATより大幅に複雑化していますが、ディレクトリが離れた位置にできるとか今回の減少に関連した特徴は大きく違わないです。

city21_kum
質問者

お礼

saijyo_739さん 外に出ていたので返答が遅れたました。お詫びします 丁寧に、しかもわかりやすく回答をいただき、非常に勉強になりました。 一部、まだ理解できていないところもありますが、よく読んで理解していきたいと思います ありがとうございました。

その他の回答 (5)

回答No.5

> (1)このようなCPU使用率90-95%で常態(10日程度使用しっぱなし)で利用しつづけても大丈夫なのでしょうか(メーカの方に聞いたら、まだ保証期間内なので利用してもらって万一、故障になった場合でも取替えができるので使用してみてくださいとのこと・・・ちょっと無神経な回答でした) 多分CPUは忙しく働いてないのでCPUに計算させ続けるエンコードのような処理と比べれば長時間でも負荷は大きくないかと思います。 ※一つのファイルを削除するたびに割り込み発生してユーザー空間とカーネル空間のソフトが交互に動いている。しかも消すファイルがある位置にHDDのヘッドをシークするのでその間CPUは休める。CPU99%-100%が続くのではなく90%-95%が続いているの5-10%がCPUが休めている時間。 > (2)ファイルの削除をするには、CPU使用率がこのように90-95%のように高くなるのは仕方ないことなのでしょうか 90%-95%は作業させ続けるという意味では非常に高いCPU使用率ではありません。どちらかというと5%-10%も休めているという感じ。 ただし、無駄な動きは非常に多くなっている可能性は高いので(HDDのヘッドがあっち行ったりこっち行ったりと移動距離が非常に長くなっている)工夫(ソフトを選ぶ事含めて)の余地はあるかも。 それと、削除に掛る時間は全体容量だけではなくファイル数に依っても大きく変わります。1000ファイルで30GBなのと100000ファイルで30GBなのでは同じ削除容量が30GBでも削除に掛る時間は全く違います。

city21_kum
質問者

お礼

回答いただきありがとうございました。 (1)(2)ともに大変、参考になりました。 (1)(2)の回答から推測すると、おなじ30GBの場合 A.1ファイル30GBが1個 B.1ファイル1GBが30個 この場合、ヘッドのシーク時間がかかるのはB.なのでAの方が処理が早いということの 理解ですよね・・・ 最後の回答について、もし、おわかりでしたら教えていただきたいのですが 上記のBの場合、別に新しくフォルダーを作成して30個のファイルを1フォルダーにまとめても ヘッドは30個分探して、削除していくのでしょうか それとも、1フォルダーだけの削除で済むのでしょうか? 素人の質問で恐縮です・・・

  • Gletscher
  • ベストアンサー率23% (1525/6504)
回答No.4

>検索対象のドライブまたはフォルダーを2つ以上選択するようになっていたため それは当然ですよね? 一つのフォルダに同じファイル名で複数個は入りませんから、重複ファイルは異なるフォルダに入っているはずです。 その両方のフォルダを指定しないと、どのフォルダの内容と、どのフォルダの内容を比較したら良いか分からないじゃないですか? でsから、2つのフォルダを指定するのは当然ですよ。 あなたが比較したい、AとBと2つのフォルダを指定すれば良いです。

city21_kum
質問者

お礼

外に出ていて返答が遅れました。 回答ありがとうございます。 Gletscherさんがおっしゃるように >どのフォルダの内容と、どのフォルダの内容を比較したら良いか分からないじゃないですか? この質問、わかるのですが、 この種の他のソフトをみていると、例えば、D:ドライブ1つを選択するとその中にフォルダー、ファイルがいくらあろうと、総当たりで比較してくれます ちなみに、当方も、HDDの中のトップのフォルダーが数百程度あるので、個別に指定していくと大変なので記載させてもらいました。

  • Gletscher
  • ベストアンサー率23% (1525/6504)
回答No.3

ただ単に30BGのファイルを削除するなら、数十分からせいぜい2~3時間だと思いますよ。 考えられる要因は、 (1)ツールソフトがFATの単純削除ではなく、ファイルの形跡も削除している (2)ツールソフトが比較しながら削除している (3)容量もさることながら、ファイル数が異常に多い などではないでしょうか? 重複検索と削除を分けると速くなると思います。 たとえば、2つのフォルダを検索して重複を見つけたら別のフォルダに移動するツールを使い、移動が終わったらフォルダごと削除すれば良いでしょう。 または、重複ファイルは特定の名前でリネームして、後でそれを削除する方法もありますね。 重複ファイルの検索と移動はお好きなツールで良いと思います。 ↓たとえばこんなの http://freesoftdownload.1-yo.com/utility/file-utility/easy-duplicate-file-finder.html

city21_kum
質問者

お礼

早速、回答をいただきありがとうございました。 教えていただいた「Easy Duplicate File Finder」も利用しようとしたのですが、検索対象のドライブまたはフォルダーを2つ以上選択するようになっていたため、あきらめてしまいました。 当方の利用方法は、外付けとなっているHDD(約120Gのデータがある)のデータの中の重複ファイル(約30Gb)を抽出したいと考えています。 他ソフト等では、対象のドライブ指定でその中のファイルの総当りで検索してくれるようです この「Easy Duplicate File Finder」で指定する場合は2つ以上ということになるとドライブの中にある全てのファイルを選択するということになるでしようか? もしわかれば教えていただければと思います

  • foitec
  • ベストアンサー率43% (1080/2457)
回答No.2

先に回答した分がサポートで確認中になってしまいました。 たぶんソフトウエアのダウンロード先だからでしょう なので一部を変えて 再掲 Easy Duplicate File Finder というのはいかがでしょうか? ttp://freesoftdownload.1-yo.com/utility/file-utility/easy-duplicate-file-finder.html 重複ファイル削除ツール うたい文句は「高速動作」だそうです ttp://www.vector.co.jp/soft/win95/util/se133825.html UnDup これも高速処理が特徴(OSの対応はたぶん大丈夫らしい) ttp://hp.vector.co.jp/authors/VA032597/Software/UnDup.html いずれもフリーウエアなのでダメモトで使ってみてください。

city21_kum
質問者

お礼

早速回答をいただきありがとうございました。 >Easy Duplicate File Finder >というのはいかがでしょうか? これは利用したのですが、兎に角、削除のところで時間がかかり、10日間ほど、CPU90-95%の使用率 でパソコンを利用しなければならないようなので途中で停めました UnDupについても利用はしたのですが、これは検索途中で「応答なし」となります あとは、重複ファイル作事ツールですか? これはあとで使って見ます いずれにせよ、データがおおすぎるのでしょうか?

  • foitec
  • ベストアンサー率43% (1080/2457)
回答No.1

Easy Duplicate File Finder というのはいかがでしょうか? http://freesoftdownload.1-yo.com/utility/file-utility/easy-duplicate-file-finder.html 重複ファイル削除ツール うたい文句は「高速動作」だそうです http://www.vector.co.jp/soft/win95/util/se133825.html UnDup.exe これも高速処理が特徴(OSの対応はたぶん大丈夫らしい) http://hp.vector.co.jp/authors/VA032597/Software/UnDup.html いずれもフリーウエアなのでダメモトで使ってみてください。

関連するQ&A