Diff Finder
The application is designed to solve problem of comparing two ascii based files line by line and giving the differences between two source files in terms of A\B. Default algorithm implementations are binary search and linear search algorithms. The code is designed to be extendable in terms of implementing custom algorithms.
Build
make all
Run
Binary Comparison
./bin/diff './sample-data/src1.lst' './sample-data/src2.lst' 'B'
Linear Comparison
./bin/diff './sample-data/src1.lst' './sample-data/src2.lst' 'L'
or with make
TEST_PARAMS="'./sample-data/src1.lst' './sample-data/src2.lst' 'B'" make test
Reference Data File stored in ./sample-data
Performance Benchmarking
Generating sample data bash command
for i in {1..200}; do echo -e "$i" >> ./sample-data/src1gen.lst; done;
Generate compare file
for i in {100..200}; do echo -e "$i" >> ./sample-data/src2gen.lst; done;
Benchmark Results
Linear Search
./bin/diff ./sample-data/src1gen.lst ./sample-data/src2gen.lst L
./bin/diff
./sample-data/src1gen.lst
./sample-data/src2gen.lst
L
Algorithm factory
LinearSearch algorithm is setting up...
Comparison started
#### Performance Result #####
N (A Src) N (B Dest) Op Count Time (Micro Seconds) ( A∩B ) Found ( A\B ) Not Found
200 101 15251 1158 101 99
Binary Search
./bin/diff ./sample-data/src1gen.lst ./sample-data/src2gen.lst B
./bin/diff
./sample-data/src1gen.lst
./sample-data/src2gen.lst
B
Algorithm factory
BinarySearch algorithm is setting up...
Comparison started
#### Performance Result #####
N (A Src) N (B Dest) Op Count Time (Micro Seconds) ( A∩B ) Found ( A\B ) Not Found
200 101 2058 221 101 99