はじめに

この資料は Rust 製のコマンドラインツール fcp について紹介するものです。

Rustの環境構築やツールのインストール方法については以下を参照してください

Rust開発環境を整える

fcp について

fcp は cp コマンドを著しく高速にした代替ツールです。fcp は cp の最も一般的な使用例を、より高い性能で処理することを目的としています。

GitHub - Svetlitski/fcp: A significantly faster alternative to the classic Unix cp(1) command, copying large files and directories in a fraction of the time.

ベンチマーク

fcpはcpより速いと主張するだけでなく、実際に cpより速いのです。OSによって性能特性が異なるため、macOSとLinuxの両方で同じベンチマークを実行しました。

macOS

以下のベンチマークは、2018年のMacBook Pro1(2.9 GHz 6-Core Intel Core i9, 16 GiB RAM, SSD)で、ファイルシステムとしてAPFSを使用して実行されました。

大容量ファイル

以下は、13種類の512MBのファイルを含むディレクトリをcpとfcpでコピーしたベンチマークの結果 で、 fcpが平均で約822倍高速でした。[1] [2](各プロットの軸の単位に注意)

https://user-images.githubusercontent.com/35482043/122131973-a3990080-cdff-11eb-92dc-3e0d5f47ac07.png

Linuxカーネルソース

以下は、Linuxカーネルのソースツリーをcpとfcpでコピーしたベンチマークの結果で、fcpの方が平均で約6倍速い結果となりました。

https://user-images.githubusercontent.com/35482043/122131983-a7c51e00-cdff-11eb-8bbb-8c768998de56.png

Linux

以下のベンチマークは、ベアメタル型のAWS EC2インスタンス(a1.metal、16CPU、32GiB RAM、SSD)で、ファイルシステムにXFSを使用して実行されました。

大容量ファイル