8871d7c5dbff6a407d37c318f13bb54752208e4d
[md5sumpare.git] / README
1 Scan quickly through a file of checksums (32 bytes) and identify identical checksums.
2 This program will allocate memory for the entire file, so it will fail or perform poorly on files larger than available memory.
3
4 A list of checksums can be generated with: find -type f -exec md5sum {} \; > data.txt
5
6 Program can be built with:
7   gcc main.c -o comparesums
8
9 Program can be run with:
10   ./comparesums data.txt
11
12 Example input:
13  7ca6adad45f5fc6a668be5c0e8c6c576  main.c
14  d5ca4c947a77efaa6206e81b1f774cbc  a.out
15  bf247132afd50625c7eaa7c132ec91b8  README
16  7ca6adad45f5fc6a668be5c0e8c6c576  test.c
17
18 Example output:
19  Attempting to open fil.txt...
20  File is 163 bytes...
21  Read 163 bytes.
22  There are 4 linebreaks.
23  Allocated 4 places in 3 buckets..
24  Comparing...
25  -------------- Identical Files Found ----------------
26  7ca6adad45f5fc6a668be5c0e8c6c576  main.c
27  7ca6adad45f5fc6a668be5c0e8c6c576  test.c
28  ------------------- Comparison Done  ----------------
29  Did 1 comparisons.
30  Found 2 identical.
31
32 Copyleft: WTFPL
33
34 For a more serious tool, check "beyondcompare" or something else, this just fit what I wanted to do and was a fun way to spend a holday evening hour.
35
36 Performance is reasonable (1.5 ghz machine):
37  Attempting to open data.txt...
38  File is 34748410 bytes...
39  Read 34748410 bytes.
40  There are 249119 linebreaks.
41  Allocated 249119 places in 62983 buckets..
42  Comparing...
43  [SNIPPED]
44  ------------------- Comparison Done  ----------------
45  Did 439760 comparisons.
46  Found 56233 identical.
47
48  real    0m0.371s
49  user    0m0.324s
50  sys     0m0.044s