Tôi chỉ chạy một số điểm chuẩn trên một tệp hơn 100 MB. diff là nhanh nhất, trong khi cmp đứng thứ hai và sử dụng md5sum cuối cùng.
# time diff file1 file2; echo $?
real 0m0.122s
user 0m0.009s
sys 0m0.113s
0
# time cmp file1 file2; echo $?
real 0m0.213s
user 0m0.097s
sys 0m0.117s
0
# time md5sum file1 > /tmp/test; time md5sum file2 > /tmp/test2; diff /tmp/test /tmp/test2; echo $?
real 0m0.279s
user 0m0.211s
sys 0m0.066s
real 0m0.316s
user 0m0.225s
sys 0m0.073s
0
Tôi chạy lại bài tập với tệp 4,3 GB và phải xóa và tạo lại tệp bằng dd vì bộ nhớ cache RAM ảnh hưởng lớn đến kết quả.
$time diff file1 file2; echo $?
real 0m19.325s
user 0m0.995s
sys 0m5.280s
0
$time cmp file1 file2; echo $?
real 0m36.106s
user 0m4.399s
sys 0m6.147s
0
$time md5sum file1 > /tmp/test; time md5sum file2 > /tmp/test2; diff /tmp/test /tmp/test2; echo $?
real 0m10.441s
user 0m8.054s
sys 0m2.357s
real 0m24.682s
user 0m8.027s
sys 0m3.442s
0
Dựa trên những kết quả này, tôi khuyên bạn nên di chuyển các tệp sang ngàm RAMFS và gắn bó với diff.