20.3ギガのファイルとフォルダーを取得し、合計で10万以上のアイテムを取得しました。私はWindows 10から1つのディレクトリにこれらのファイルをすべて複製しましたが、3時間ものコピーが必要でした。できました。
先日、私はLinux Fedora 24でブートし、同じフォルダーとbamを再コピーしました!同じ場所で異なるディレクトリに複製するのにわずか5分かかりました。
なぜLinuxはそんなに速いのですか?そして、Windowsは非常に遅いです?
ここに同様の質問があります
(Ubuntu)LinuxファイルコピーアルゴリズムはWindows 7よりも優れていますか?
しかし、受け入れられた答えはかなり欠けています。
その基本は、システム全体のいくつかの主要コンポーネントに分解されます。UI要素(グラフィカルパーツ)、カーネル自体(ハードウェアと通信するもの)、およびデータが格納される形式(つまり、ファイルシステム) )。
逆に言えば、 NTFS
はしばらくの間Windowsのデファクトでしたが、主要なLinuxバリアントのデファクトは ext
です。 ファイルシステム。 Windows XP(2001)以降、NTFSファイルシステム自体は変更されていません。パーティションの縮小/修復、トランザクションNTFSなど、存在する機能の多くはOSの機能です( Windows Vista/7/8/10)および ない NTFS自体。 ext
ファイルシステムは、2008年の最後の安定リリース(ext4
)でした。ext4
を使用している場合、ファイルシステム自体がファイルへのアクセス方法と場所を管理しますNTFSよりも速度が向上していることに気付く可能性があります。ただし、ext2
を使用すると、速度が同等であることに気付く場合があります。
また、1つのパーティションが他のパーティションよりも小さなチャンクでフォーマットされている場合もあります。ほとんどのシステムのデフォルトは4096 byte
です 1 、 2 クラスターサイズ、ただしext4
パーティションを16k
のような形式にフォーマットした場合 次に、ext4
システムで読み取るたびに、NTFSシステム(これは たぶん......だろう 何がどこに、どのように、どのくらいの大きさで保存されているかに応じて、4倍のファイルを意味します。ファイルの断片化も速度に影響します。 NTFSはext
ファイルシステムとは非常に異なる方法でファイルの断片化を処理します。100k以上のファイルでは、断片化が発生する可能性が十分にあります。
次のコンポーネントはカーネル自体です(UIではなく、ハードウェア、つまり真のOSと実際に通信するコード)。ここでは、正直言ってそれほど大きな違いはありません。両方のカーネルは、ディスクキャッシング/バッファリングなどの特定のことを実行して、読み取りと認識される書き込みを高速化するように構成できますが、これらの構成は通常、OSに関係なく同じトレードオフがあります。例えばキャッシュはコピー/保存の速度を大幅に向上させるように見えるかもしれませんが、キャッシュの書き込み中に電源を失うと(またはUSBドライブを引き出すと)、実際にディスクに書き込まれていないすべてのデータが失われ、すでに書き込まれているデータが破損する可能性もありますディスク。
例として、WindowsとLinuxの多くのファイルをFATフォーマットのUSBドライブにコピーします。 Windowsでは10分かかる場合がありますが、Linuxでは10秒かかります。ファイルをコピーした直後に、ドライブをイジェクトして安全に取り外します。 Windowsでは、システムからすぐに排出されるため、USBポートからドライブを取り外すことができますが、Linuxでは、実際にドライブを取り外すまでに10分かかることがあります。これはキャッシュのためです(つまり、LinuxはファイルをRAMに書き込んでから、バックグラウンドでディスクに書き込み、キャッシュレスのWindowsはファイルをすぐにディスクに書き込みました)。
最後はUI(ユーザーが操作するグラフィック部分)です。 UIは、いくつかのクールなグラフとニースバーが表示されたきれいなウィンドウで、コピーされるファイルの数とそのサイズ、およびかかる時間の概算を教えてくれます。 UIが印刷されないコンソールの場合もあります どれか 完了時以外の情報。 UIが最初に各フォルダーとファイルを調べて、ファイルの数とそれらのサイズを判断し、大まかな見積もりを行う必要がある場合 前 実際にコピーを開始できますが、UIがこれを実行する必要があるため、コピープロセスに時間がかかる場合があります。繰り返しますが、これはOSに関係なく当てはまります。
同等のもの(ディスクキャッシュやクラスターサイズなど)を構成することもできますが、現実的に言えば、システムを機能させるためにすべての部分がどのように結び付けられているか、より具体的には、これらのコードが実際に更新される頻度にかかっています。 Windows XPはWindows XPから長い道のりを歩んできましたが、ディスクサブシステムは、すべてのバージョンのOSでTLCを長年見ていない領域です( Linuxエコシステムと比較して 新しいFSまたは改善がかなり頻繁に見られる)ようです。
いくつかの明確さを追加することを願っています。