Windowsファイルコピーダイアログ:推定がどうしてこんなに悪いのですか?


38

推定

xkcd

Windowsのコピーダイアログ(Windows XPの場合)は最初にコピーをメモリに保存し、ダイアログを閉じた後もまだコピーしているため、時間が切れていることを知っていますが、コピーを作成するのにかかる時間の見積もりはなぜですかメモリコピーが無効になっている場合でも(VistaおよびWindows 7で)不正確ですか?とてもarbitrary意的です!コピー手順全体がどのように機能し、Windowsがそれを正しく推定できないのはなぜですか?



進行状況バーには、完了した時間の割合(fyi)ではなく、完了したファイルの数が表示されます。
ファクターミスティック


3
また、これはWindowsだけでなく、すべての OSに当てはまります。制約は普遍的だと思います。
時計仕掛けミューズ

1
また、ノートにマークRussinovich氏のブログ記事です:blogs.technet.com/b/markrussinovich/archive/2008/02/04/...
surfasb

回答:


29

要するに、貧弱なアルゴリズムと急激な推定は、実際には実装の弱点です。

TeraCopyのような他のツールはより良い仕事をします。実装が良くない理由を説明する価値はないと思います。彼らはそれに気づき、改善するでしょう。

難しいこと:

  1. リソースの変動(主にCPU /ネットワーク帯域幅/ HDD速度)を考慮する必要があります
  2. 動作を予測することにより、かかる時間を推定する必要があります(Windowsファイルコピーが今のところ決定的にひどく行うこと)。
  3. 元の推定値に合わせて時間をかけて調整します(上の面白い写真では気に入らない小さな調整を意味します!)

そのためには、バイト数だけでなく、作成するファイルの量も重要です。100万個の1KBファイルまたは1,000個の1MBファイルがある場合、前者には多くのファイルを作成するオーバーヘッドがあるため、状況はまったく異なります。使用するファイルシステムによっては、実際にデータを転送するよりも時間がかかる場合があります。

このダイアログは、何度も私を怒らせました:

  • 古いWinNTシステムでは、コピーする小さなファイルがたくさんある場合、各ファイルの名前と素敵なアニメーションが表示され、プロセス全体が実際には使用できなくなりました。

最新のWindowsのコピーはそれほど良くありません:

  • 転送するデータの量を計算するには、最初にルックアップを行うように思われるため(実際にそうなると思います)、ジョブを効果的に開始するまで多くのディレクトリを選択すると時間がかかります。
  • 組み込みのタイムアウトによっては、大きなファイルをコピーすることが要求されます(システム上で約60GB以上)。痛みは、ネットワーク上で既に30GB以上をコピーした後、ゼロから再起動する必要があるため、帯域幅と時間が失われるということです。
  • あるコンピューターから別のコンピューターへのファイルのコピーは、何らかの理由で非常に遅いです。(利用可能なネットワーク帯域幅と比較すると、他のツールを使用する方が高速であるため、計算の制限はありません。)

とても興味深い!
マキシムZaslavsky

48

レイモンド・チェンはこれについて非常に素晴らしい記事を一度書いた。基本的に、ダイアログは推測するだけです:)。

http://blogs.msdn.com/b/oldnewthing/archive/2004/01/06/47937.aspx

「コピーダイアログは単なる推測であるため、未来を予測することはできませんが、試してみる必要があります。コピーの最初の段階では、通過する履歴がほとんどないため、予測が非常に悪い場合があります。

これは類推です:誰かが「私は100まで数えようとしているのに、いつ終わるかについて継続的な推定値を与える必要がある」と言ったとします。彼らは「1、2、3 ...」から始めます。1秒あたり約1つの数値で送信されていることに気づくので、100秒と推定します。ああ、今、彼らは減速している。「4 ... ... ... 5 ... ... ...」ここで、推定値を200秒に変更する必要があります。今、彼らはスピードアップします:「六七八九」あなたは再びあなたの見積もりを更新しなければなりません。

今、あなたの推定値だけを聴いていて、数えている人ではなく、あなたがロッカーから外れていると思っている人。見積もりは100秒から200秒から50秒になりました。あなたの問題は何ですか?どうして良い見積もりができないのですか?

ファイルのコピーも同じです。シェルは、コピーされるファイルの数とバイト数を知っていますが、ハードドライブ、ネットワーク、またはインターネットがどれだけ速くなるかはわからないので、推測するだけです。コピーのスループットが変化する場合、新しい転送速度を考慮するために推定値を変更する必要があります。」


8
彼が与えている類推は、一言で要約することができます:統計。
-surfasb

33

私は10個まで数えますが、10個になるまでに1....2....3....4何ドットかかるのでしょうか?

5.6.7今はどう?数値間の過去のすべてのドットを考慮して平均化し、最後の4つの間隔のみを使用してその平均を使用しますか、最後の間隔のみを確認しますか?

ファイル転送にも同じ問題があります。ファイルの転送速度は一定ではなく、多くの要因に基づいて高速化および低速化されます。数がこれほど飛び回るのは、Microsoftがスペクトルの「最後の間隔のみをカウントする」側に傾いているためです。

スペクトルのその側には何の問題もありません。より正確な「1秒あたりの秒数」を提供します(リアルタイムで1秒すると、カウンターが1秒ずつダウンします)が、これによりタイマーの合計ETAが大幅にジャンプします。

反対側の良い例は、圧縮時の7-Zipです。処理中に圧縮の速度が低下した場合、ETAはファイル転送ETAのように劇的にジャンプしないことがわかりますが、タイマーが1秒を刻むまでに2〜3秒かかる場合があります(またはカウントアップを開始することさえあります) )新しい速度で安定するまで。


2
彼らは、指数関数的または定期的な移動平均をしなかった理由ビート私を...
Mehrdad

@Mehrdad Windowsの最近のバージョンでは、ETA時間はWindows 7以降の7zipのように動作すると思います。
スコットチェンバレン14

15

実際、MicrosoftのRaymond ChenによるWAAAAAYからのこれについてほぼ正準の回答があり、パズルにはいくつかのピースがあります。

コピーダイアログは推測しているだけだからです。将来を予測することはできませんが、試してみる必要があります。そして、コピーの最初の段階で、進むべき歴史がほとんどない場合、予測は非常に悪くなる可能性があります。

まず、Windowsが推測していることです。ファイルの数と大きさはわかっていますが、ファイルごとの転送速度は大きく異なります。サイズや、場合によってはドライブ上の場所などによって異なります。時間が経つにつれて、現在および過去の条件に基づいて推測が調整されているため、実際の条件下では不正確な推定転送速度になります。


興味深いことに、2004年に最初に寄せられたコメントでは、Vistaで2006年までに導入されなかった残りのバイト数を示す詳細なファイルコピー情報のドロップダウンについて説明しています。
スコットチェンバレン14

2
ええ、チャットの誰かもこれを指摘しました。私が代わりに凝視する彼にカラフルなグラフを与えることによって、解きはユーザーの問題が完了するまでの時間を見つめていると言うように誘惑よ:)
ジャーニーマンオタク

@JourneymanGeek「チャット中の誰か」のレポート!これはかなり信頼できるソースがある一方、いや、それは2004年からだと心に留めておくことが重要だ、とひどく時代遅れであり、おそらく唯一の漠然とのWindows 8上で現在使用中のアルゴリズムに関連する
ボブ・

1
Windows 8の関連するブログ投稿は次のとおりです。「コピーを完了するまでの残り時間を正確に見積もることはほとんど不可能です...現在のものよりも、自信のある情報を提示することに集中しました...」
ケリートーマス14

12

マイクロソフトのプリンシパルソフトウェアデザインエンジニア、レイモンドチェンによる説明を以下に示します。

コピーダイアログがこのような恐ろしい見積もりを出すのはなぜですか?

コピーダイアログは推測しているだけだからです。将来を予測することはできませんが、試してみる必要があります。そして、コピーの最初の段階で、進むべき歴史がほとんどない場合、予測は非常に悪くなる可能性があります。

これは類推です:誰かが「私は100まで数えようとしているのに、いつ終わるかについて継続的な推定値を与える必要がある」と言ったとします。彼らは「1、2、3 ...」から始めます。1秒あたり約1つの数値で送信されていることに気づくので、100秒と推定します。ああ、今、彼らは減速している。「4 ... ... ... 5 ... ... ...」ここで、推定値を200秒に変更する必要があります。今、彼らはスピードアップします:「六七八九」あなたは再びあなたの見積もりを更新しなければなりません。

上記のブログ投稿には、この問題に関する長い議論があり、興味深いコメントもあります。

レイモンド・チェンは「マイクロソフトのチャック・ノリス」という伝説的な人物です。あなたがより権威のある答えを得るとは思わないでしょう。私は彼が少なくとも問題のコードを見たことがあると確信しています。


9

明らかな理由は、転送速度が時間とともに変化するため、平均も予測も変化することです。これを技術関係のない友人に説明するために、私は飛行機での旅行に関する類推を使用しました。大西洋上空を飛行します。出発空港にタクシーで到着すると、ETAは約2か月です。これまでの平均速度に基づいて、到着空港に降りると、5秒以内に友人の家に到着します。

ただし、同じディスク内または2つのローカルディスク間でファイルをコピーするなど、予測可能なシナリオのように見える場合でも、実際に速度がどれだけ変化するかを認識する必要があります。私がWindows 8で気に入っている新機能の1つは、[詳細]をクリックすると、速度を経時的にグラフ化する機能です。Windows 8マシンにアクセスできない場合は、多くの例についてWindows 8のコピーダイアログの画像を検索してください。それらの多くはかなり平らですが、それらの多くはまた、ハードドライブが実際に健全であるかどうか、それがゼロに落ちたときに不思議に思うほど不穏です。

これらのバンプの一部は、ファイルサイズのばらつきが原因である可能性があります。特に、読み取りヘッドを移動してシークする必要がある機械的なハードドライブでは、フィールドが小さいほどアクセスが多くなり、速度が低下しますプラッターへの損傷を防ぐため、わずかなタッチで失速します。

良くも悪くもETA予測アルゴリズムがありますが、正確な予測のためには、コンピューターはすべてを知っている必要があります。アルゴリズムを「スマート」にしようとするリスクは、それがさらに陽気に間違っている新しい、予期しないケースを作成する可能性があることです。

Windows 8のコピーダイアログ

Windows 8のコピーダイアログ2


4

一連のファイルを圧縮するのにかかる時間を知る唯一の方法は、それらを圧縮することです。Windowsの最良の推測が近い場合もあれば、非常に間違っている場合もあります。お気づきのとおり、大量のファイルをコピーする場合も同様です。

あまり正確ではない情報の無用な表示ほど、バグではありません。それを修正する最善の方法は、目を閉じることです。それを無視します。;-)

おそらく、ファイルをコピー/圧縮し、終了時にアラーム音を鳴らすことができるプログラムがあります。それは本当に便利でしょう。Windowsがハウスクリーニングを完了するのを待つ間、少し仮眠をとることができます。


4

その理由は、Roaldの回答にリンクされているブログ投稿のコメントの1つでうまく説明されていると思います。

それは恐ろしい推定アルゴリズムを持っています。言い訳はありません。1000個の1KBファイルと10個の1MBファイルをコピーする必要がある場合、1KBファイルと同様に1MBファイルでもビジーになると考えられます。

それがそのような恐ろしい見積もりを与える理由は、それがうまく行われていないということです。明らかに、100%正確になることはありませんが、はるかに優れている可能性があります。


1
Windowsでのファイルの大きさを知るには、ファイルを開く必要があり、Windowsでファイルを開くことは、ファイルを読み取ることを意味します。また、すべてのファイルを開いてコピーの所要時間を見積もるのに十分なサイズを確認する代わりに、Windowsは実際にファイルをコピーする時間を使用することを決定します。
SecurityMatt

1
@SecurityMatt:その場合、ディレクトリリストを取得するには時間がかかります。ファイルサイズはディレクトリに保存され、ファイルが変更されるたびに更新されると確信しています。したがって、ディレクトリにリストされているファイルサイズと転送速度に関するいくつかの仮定に基づいて、コピー時間を迅速かつかなり正確に推定する方法が必要です。本当にスマートなOSは、時間の経過に伴う平均転送速度に注意を払い、その推定で使用します。
RobH

4

コピープロセスを迅速に行うため(コピー関連の操作を実行する代わりに時間の見積もりを計算するのに時間をかけすぎないように)、エクスプローラーに組み込まれているWindowsコピーユーティリティは、以前の書き込み操作が完了した速度に関する限られた量の情報を保持します。残り時間を計算する必要があるたびに、書き込み操作にかかった平均時間を計算し、残りの書き込み操作の数で乗算します。

問題は、書き込み操作を実行するのにかかる時間が一定ではないことです-実際には大幅に変化する可能性があります。したがって、これにより、時間の見積もりに大きな変化が生じます。


私はあなたがこれについて非常に正しいとは思わない-あなたはたった2つの数字-現在の平均[ A]とその平均を取得するために使用されるデータポイントの数[ ] を使用して書き込みの使用可能な平均を維持できますn。それを更新するのは、の場合だけです(A*n + [New value])/[n+1]。また、コピー操作はほとんど常にCPUバウンドではなくIOバウンドであるため、数秒ごとのような単純な計算は何もありません。一方、最後のn書き込みの平均値を維持するには、n要素の配列/キュー/スタックが必要です。そのため、どの値が削除されるべきかがわかります。
基本的な14

いい視点ね!それで、なぜそれはあちこちでそうですか?:P
ブライアングラディン14

最後の数件の書き込みのみを考慮に入れて、より応答性の高い平均を行うことで、彼らは賢くしようとしたと思います。そうは言っても、私はソースを持っていないので、誰が知っていますか?
基本的な14

4

考慮すべき3つの要素があります。

  1. 転送の合計サイズ。
  2. 転送されるファイルの数。
  3. メディアの「忙しさ」、そしておそらく接続。

番号1と3は、転送時間の計算に最も明白な効果があるように見えますが、非常に多くの人が番号2を考慮していません。これは、転送にかかる時間に大きな影響を与え、定量化が困難です。

基本的に、ファイルが書き込まれるたびに、ファイルシステムはファイルに関する少しのメタデータを書き込む必要があります。所有権、許可、作成/変更/アクセス時間など。特定のファイルシステムによっては、この情報は、ファイルが書き込まれている場所から非常に離れたディスクの一部に書き込まれる場合があります。このファイルシステムのオーバーヘッドは、一見単純な転送に長時間を要したり、時間の見積もりを大きく変動させたりする可能性があります。

例:1つの大きなファイルを転送すると、推定値が安定してかなり正確であることがわかりますが、サイズが異なるが合計サイズが同じである数百のファイルを転送すると、時間がかかり、時間推定値がフィットすることがあります。


4

現在の推定アルゴリズムには3つの欠陥があります。

一般的な信念に反して、彼らは私たちの手をひっくり返すほど難しくはない。

ほとんどの人々がブログを書いており、ここの人々がその可能性に気付いていない理由は、私が学べる分野と学校の幅の広さからわかる限りでは最高です。控えめながらも非常に快適な救済策は、[ブログ作成者よりも最近のトレーニングを受けた卒業生] [数十億ドル規模の会社]マイクロソフトにとって可能です。

その理由を大まかに説明しようと思います。


失敗のポイントは次のとおりです。カーネル:

1. カーネルの範囲外の状況により、将来のIO負荷を確実に予測できない

  • これは非常に無制限のP = NP問題なので、これについては何もしないでください。

2. 有用な詳細レベルでIOヒューリスティック追跡しません使用率は、ディスク/ネットワークの読み取り/書き込み速度よりもはるかに広い概念です

  • これについて行う必要はほとんどなく、最も基本的なIO使用情報を追跡するだけです。

    • ディスクから
      • 平均読み取り速度の次元1a
      • ファイルディメンション2aの平均書き込み速度
    • に基づいて、量子ごと*
      • ファイルのサイズ次元b
      • ディスク次元c上のファイルの場所
    • * 3つ以下のカテゴリに[おそらく]量子化されます。次元の削減は特定の判断には役立ちますが、3は(おそらくかなり効果的な)何よりも良い予測メカニズムに十分なはずです。
      • ファイルサイズ
        • ヘビー
      • ロケーション[シークレイテンシの通知]
        • 始まり
        • 中間
        • あなたはポイントを得る
      • ファイルのサイズと場所は冗長であり、読み取り/書き込み速度と重複しています。これは意図的なものです
    • ディスクがどれほど「ビジー」であったかを知る必要があるので、そのビジーな次元dであり続けると仮定できます。
      • 読み取られるファイルの量から計算され、それぞれの重みで畳み込まれます
      • コピー開始時の時間を推定するために使用されます... このコピーダイアログ以外のすべてが現在のままである場合、将来の予想される負荷に基づいてダイアログ
    • 目的のために記録する方法は...ここに特許があります

3. 追跡された場合、ヒューリスティックには使用できません

  • ここではほとんど行われていませんが、ほとんどの作業を行います
  • これは、使用する#2のデータを置く場所です
    • ファイルの重みと場所の大まかな統計分析により、どの程度のホッピングを実行するかを決定します。重量+場所は予測を与えます
    • 現在のディスク負荷の重みと場所と組み合わせる
    • 我々は、ファイルの数の平均読み取り/書き込み速度が何を考えて推定する次元Fになります
    • モデルを微調整するために比較します
    • 進行状況バーと完了までの時間を非常に正確に見積もることができます
  • 予測の目的のために分析する方法は...ここに特許であります

このすべてのポイントは、モデルが2a = F *(bxc)+ d complexのみであることです

a、b、およびcにはそれぞれ3つの状態があります。ファイルマネージャーは、コピーする前にファイル(またはメタデータのみ)を覗き、F *(bxc)+ dは高価な計算ではありません。より正確なものが必要な場合は、より多くの状態を持つルックアップテーブルを使用してください。計算はほとんどありません。

注:ここでの寸法は大皿用であり、SSDによって異なります-開始/中間/終了は関係ありません

私が説明したものとこれまで見てきた以前の実装との主な違いは、要するに、ディスク上のファイルサイズとファイル分散/エントロピーを観察し、それを使用してディスク使用の時間要素を正確に説明することです。

(特許は読者のための演習として残されています...)


@Twisty完了です、今はどうですか?
paIncrease 14年

ずっといい。このサイトをご利用いただきありがとうございます。コミュニティにご参加いただきありがとうございます。
私は言う:モニカーの復活2014

3

どれだけ時間がかかるかを予測しようとすると、多くの「不明な」変数があります。たとえば、プログラムは3500個のファイルがあり、ファイルの量が3.5 GB(3500 MB)であることを知っていますが、それは各ファイルが1 MBであることを意味しますか?必ずしも。大量の4 KBファイル、大量の100 MBファイル、およびその間にある他のファイルが存在する可能性があります。また、ファイルの送信元と送信先(メディアなど)を考慮する必要があります。最大のボトルネックは何ですか?VPNトンネルを介してHDDからファイルをコピーしようとしていることをどのように説明しますか?最良のシナリオを提示してから、リアルタイムでカウンターを調整します。これが、それらの進行状況メーターがその場で変化するのを見る理由です。


2

数学的に正しいモデルは、実際に単純な平均化と外挿を行うことです。

transfer speed = data copied / time elapsed
time remaining = data remaining / transfer speed

その理由は、大数の法則により、局所的な変動が平均転送速度で相殺され、これにより最も安定した結果が得られるためです。

マイクロソフトが行うように思われるのは、最新の時間枠で転送速度を計算することです。これは、各ローカル変動が結果を大幅に変更することを意味します。


2
モデルは、他のファイル転送を並行して開始するなど、長時間実行される障害を適切に処理せず、同じ量のデータが20分かかっただけで、あと5分しかかからないことを通知し続けます。加重移動平均の方がより正確な場合があります。
ダニエルベック

@DanielBeck:正確ではありません。予想される時間は徐々に増加します。問題は、どれだけ速く増加するかということです。まあ、それは経過時間に依存します。すでに5時間コピーされていた場合など、長時間の操作であった場合、期待はそれほど大きくなりません。しかし、5時間の操作では15分の不正確さが問題になりますか?いいえ。ポイントは、相対誤差の観点から最良の近似を提供するということです。また、すべてのシナリオではるかに優れた動作をすることはできません。
イブンガロビル

2
モデルの問題は、転送の途中で転送速度の変化に絶対に反応しないことです。これは、高速で反応するWindowsファイル転送と同じくらい耐え難いでしょう。:最初は10MB / sで60GBの転送。開始時の残り時間:100分。54GBを転送し、2MB / sにドロップします。90分後: 54GBの推定残り時間:10分。リアルタイムは54GBのままです:50分。115分後:57GBの推定残り時間:6分。57GBのリアルタイム:25分。131.67分後59GBに残っている推定時間:2.23分。リアルタイムは59GBのままで、8.33分です。
ダニエルベック

@DanielBeck:転送全体は150分続くため、転送の開始時の最大相対誤差は50%であり、これ以上改善することはできません。54 GBでは、合計で約14%の割引です。(150分かかる場合、なぜ20分が重要なのでしょうか?)実際には非常に良い見積もりです... ウィンドウのサイズがわからないため、これを改善する方法加重移動平均ではありません(この操作ではファイルのコピーのように数分かかると予想されます。
ybungalobill

または、10分間の10 MB /秒と10分間の0 MB /秒を取得するp2pファイル共有プロトコルで数時間)。これを改善する方法は、サイズではなく時間で加重平均することです。
イブンガロビル

1
There is some way to refine or correct this kind of "bug"?

Roald van Doornが言ったように、それは基本的に推測に過ぎません。もちろん、それはそれがより良い推測者になれなかったという意味ではありません。これを計算するために使用できるヒューリスティックがたくさんあります。

  1. 最良の方法、最も高価な方法は、以前の「コピー」の履歴を保持し、人工知能アルゴリズムを使用して推測を計算することです
  2. どれくらいの時間を要するかの研究に基づいて式を作成できます。ファイルシステム、ファイル数、ファイルサイズ、ディスクシーク時間、ディスクバルク読み取り/書き込み速度、ディスク上のファイルの場所(断片化)、現在のディスク使用率などを考慮することができます。
  3. 2つのミックス。すなわち。特定の操作にかかる時間を調べるためにいくつかのベンチマークを実行し、それらを単純な数式の履歴として使用します。

明らかに、これは簡単に実装されるものではありません。そして、ファイルのコピーについてのみ言及しました。あらゆる種類の転送について、同様の作業を行う必要があります。
自問しなければならない質問-マイクロソフトではなく、より正確な見積もりを提供する時間を費やすか、ファイル転送を高速化するかです。

ただし、7-zipで圧縮すると、Windowsよりも推測する方がはるかに優れていることに気付くでしょう。私はそれが少し複雑な推測をするような複雑なことをしているとは思いません。


1

つまり、計算は現在の転送速度に基づいています。

たとえば、Windowsが大量の小さなファイルをコピーする必要があるために転送速度が低下する場合、予想される時間は直線的に長くなり、逆に大きなファイルの場合も同様です。

ほとんどあり予測することは不可能どのような転送速度が、それはファイルサイズなど、CPU使用率、伝送errosのような多くの要因に依存するため、全体の転送プロセス上になります


1

MSDNブログの投稿「ファイル管理の基本の改善」には、興味深い回答がいくつかあります。これについては、コピー、移動、名前変更、削除を行ってください。なぜ難しいのか:

コピーを完了するまでの残り時間を見積もることは、予測不能で制御できない変数が多数あるため、正確に行うことはほぼ不可能です。たとえば、コピージョブの長さで使用できるネットワーク帯域幅はどれくらいでしょうか。ウイルス対策ソフトウェアが起動し、ファイルのスキャンを開始しますか?別のアプリケーションがハードドライブにアクセスする必要がありますか?ユーザーは別のコピージョブを開始しますか?

そしてどのように改善されているのか、

現在の予測よりもわずかに改善されるだけの低い信頼度の見積もりに多くの時間を費やすのではなく、私たちは自信を持って有用で説得力のある方法で情報を提示することに焦点を当てました。これにより、最も信頼性の高い情報を入手できるため、より多くの情報に基づいた意思決定を行うことができます。

とはいえ、実際に与えられた見積もりだけを改善し、進行状況バーをそのままにしたい場合は、Slashdotコメントで提案され何かを行うことができます:

ファイルシステム上の各ストレージデバイスの予想速度のテーブルを維持します。ファイルシステム情報の読み取りにかかる時間を記録します。デバイスがマウントされている場合、デバイスの種類に応じて適切であれば、中央と端をシークし、そこで速度を測定します。さまざまな場所での読み取りおよび書き込み速度の近似曲線を取得し、将来の推定に使用します。将来の読み取りおよび書き込み操作のために、それらがどこにあるか、どれくらいの速度で移動するかに注意し、それに応じて曲線を調整します。

操作が開始されたら、それぞれのデバイスの入力と出力の曲線を見てください。ターゲットの場所に予想される速度を見つけます。どちらの速度が遅い場合でも、推定に使用する必要があります。


1

単に、ファイルの総数が、PCでのファイルコピー操作の最も時間のかかる要因であることを付け加えました。私はいつでも若い学生として、内容のない1つのファイルから始めて、それをコピーし、2つのファイルを選択して再度コピーすることで、私のコンピューティングクラスでPCの障害を故意に引き起こします。約1024個のファイルを超えると、ファイルヘッダーに保存された情報をコピーしていなくても、何でもするのに膨大な時間がかかり始めました。新しいOS、指数関数的なファイルコピーでも試してみてください。何が起こるかわかります。思考の糧。


おもしろいですが、これは質問に答えません。回答する前に回答方法をお読みください。
ユーザー99572は

0

USB HDDから200GBをメインドライブにコピーしました。約130000個のファイルがありました

最初の4〜5分後に、次のことを観察しました。

  • 最小ファイルの場合、レートは約600 KB / sで1秒あたり約100ファイルでした。
  • また、大きなファイルの場合は70MB / sのようでした

開始時に、ウィンドウは1時間から5時間以上、1時間などに推定値を変更しました。最終的には95%のように、推定を10分から10時間以上に変更していました。そのため、より正確になる代わりに、ますます精度が低下していました。

簡単な数学ショー:

1秒あたり100ファイルで130,000ファイル= 22

1秒あたり70 MBで200,000 MB = 47

22分-数キロバイトのサイズのファイルをコピーするシーク時間で緩んだ。 47分-シーク時間がない場合に実際のデータを転送する必要がある時間。

22分+ 47分の合計は、おそらくかかる可能性のある絶対最大時間です。

だから、明らかに推定値は間のどこかでなければなりません4769分。

ダイアログの約90%に表示される内容:「いくつかの小さなファイルを1MB / sでコピーしています。20GBのデータがあります。完了するまでに5:30時間かかります。

数秒後:「ここで大きなファイルをコピーしています。70mb/ sで完了するには4分かかります。

人間が同じダイアログから実際に見るもの:120,000個のファイルと180GBがすでに40分間コピーされています。残りの10000ファイルと20GBは約5分かかります

このダイアログは、毎秒より正確に計算するための十分な情報を提供します。小さなファイルがコピーされる速度を知っています。大きなファイルがコピーされる速度を知っています。また、残っているファイルの数とバイト数も知っています。

上限と下限を設定するだけで、非常に正確な仮定を立てることが非常に簡単です。

ダイアログは、大きなファイルが小さなファイルの前にある場合にのみ、もう少し正しいデータを表示します。この場合、40分で開始し、30分後に小さなファイルのコピーを開始し、「20分以上必要です」と表示します。

しかし、小さなファイルが先頭にあり、大きなファイルが最後にある場合。ダイアログは、実際に小さなファイルを転送する「1秒あたりのファイル数」を考慮しません。小さなファイルの数が無限であるように計算され、永遠に小さくなるように計算されます。


これは実際には質問に答えません。
DavidPostill

注意深く読んでいると、実際に答えます。これらは2種類の悪い評価であり、例に基づいたリバースエンジニアリングの観点からそれらが発生する理由を説明しました。
Xizario 16
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.