Rift Star on GitHubv0.3.0

Rift

Benchmarks

Every number on this page comes from a file in the repository. Each table names the machine, the system, the date, the command and the source.

The data is generated by rift-gen with seed 7, profile sql, with a mutation starting at about one line in a thousand (--change-ratio 0.001, the default). Rift runs at --mem 256M. Peak memory is the resident set. Peak heap is Rift's own counter, the part --mem limits.

The largest pair measured so far is 10 GiB. No pair above that has been run.

Apple M1, 1 GiB and 10 GiB

PairToolTimePeak memory
1 GiBrift --summary1.26 s127.7 MiB
1 GiBrift (full diff)0.93 s130.8 MiB
1 GiBsystem diff17.55 s3.2 GiB
10 GiBrift --summary13.37 s136.5 MiB
10 GiBrift (full diff)26.16 s136.5 MiB
10 GiBdiff, git diffdid not run: needs more than 16 GB of RAM

git diff has no 1 GiB row: it treats files over 512 MiB as binary and prints no diff. On the 1 GiB pair Rift's heap peaked at 83.5 MiB, and on the 10 GiB pair at 94.1 MiB.

Intel Core i5-10600, 256 MiB to 2 GiB

PairToolTimePeak memoryPeak heap
256 MiBrift (full diff)0.28 s112.8 MiB83.2 MiB
256 MiBGNU diff1.62 s776.3 MiB
256 MiBgit diff --no-index2.57 s1.0 GiB
1 GiBrift (full diff)0.69 s113.0 MiB83.6 MiB
1 GiBrift --summary0.51 s113.0 MiB83.6 MiB
1 GiBrift --mem 64M (full diff)0.54 s30.7 MiB21.0 MiB
1 GiBrift --mem 1G (full diff)1.20 s436.3 MiB329.2 MiB
1 GiBGNU diffkilled at the memory cap
1 GiBgit diff --no-index42.59 s5.3 MiB
2 GiBrift (full diff)1.20 s113.4 MiB83.6 MiB
2 GiBrift --summary0.86 s113.0 MiB83.6 MiB
2 GiBrift --mem 64M (full diff)1.02 s30.5 MiB21.0 MiB
2 GiBrift --mem 1G (full diff)1.75 s436.8 MiB330.0 MiB

GNU diff was capped at 3 GiB of memory, and the cap killed it on the 1 GiB pair. git diff --no-index finished that pair in about 42 s because it printed no diff: it treats the files as binary, and its output was 241 bytes.

The two extra rows for each size show what --mem does. On the 1 GiB pair, --mem 64M took a heap of 21.0 MiB and --mem 1G took 329.2 MiB. The full report, with the CSV pairs and the thread scaling, is in the file above.

What these numbers do not show