Skip to content

Commit 1c1cb60

Browse files
committed
Normalise times for human eyeballs
1 parent fa9e368 commit 1c1cb60

1 file changed

Lines changed: 17 additions & 17 deletions

File tree

README.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -41,21 +41,21 @@ Default settings (1 MiB chunks, file-backed hash table). Memory column shows pea
4141

4242
| Test case | New size | Patch size | Ratio | Patch time | Diff time | Memory | Diff time (RAM) | Memory (RAM) |
4343
|-----------|----------|------------|-------|------------|-----------|--------|-----------------|--------------|
44-
| Wine 4.18 → 4.19 | 201 MiB | 249 KiB | 0.12% | 125ms | 424ms | 21.5 MiB | 380ms | 149 MiB |
45-
| Linux 5.3 → 5.4 | 895 MiB | 6.8 MiB | 0.76% | 503ms | 2,132ms | 59.2 MiB | 1,811ms | 563 MiB |
46-
| Firefox 71.0b11 → b12 | 198 MiB | 10.9 MiB | 5.49% | 136ms | 757ms | 18.6 MiB | 730ms | 147 MiB |
47-
| Chrome 78.0.3904.97 → 108 | 145 MiB | 8.3 MiB | 5.71% | 110ms | 789ms | 16.9 MiB | 751ms | 147 MiB |
44+
| Wine 4.18 → 4.19 | 201 MiB | 249 KiB | 0.12% | 0.13s | 0.42s | 21.5 MiB | 0.38s | 149 MiB |
45+
| Linux 5.3 → 5.4 | 895 MiB | 6.8 MiB | 0.76% | 0.50s | 2.13s | 59.2 MiB | 1.81s | 563 MiB |
46+
| Firefox 71.0b11 → b12 | 198 MiB | 10.9 MiB | 5.49% | 0.14s | 0.76s | 18.6 MiB | 0.73s | 147 MiB |
47+
| Chrome 78.0.3904.97 → 108 | 145 MiB | 8.3 MiB | 5.71% | 0.11s | 0.79s | 16.9 MiB | 0.75s | 147 MiB |
4848

4949
### With `--max` (zstd level 22)
5050

5151
Smaller patches at the cost of much slower diff times. Patch application speed is similar.
5252

5353
| Test case | New size | Patch size | Ratio | Patch time | Diff time | Memory | Diff time (RAM) | Memory (RAM) |
5454
|-----------|----------|------------|-------|------------|-----------|--------|-----------------|--------------|
55-
| Wine 4.18 → 4.19 | 201 MiB | 203 KiB | 0.10% | 119ms | 3.7s | 60.9 MiB | 4.2s | 189 MiB |
56-
| Linux 5.3 → 5.4 | 895 MiB | 6.1 MiB | 0.68% | 518ms | 64.3s | 60.6 MiB | 66.2s | 573 MiB |
57-
| Firefox 71.0b11 → b12 | 198 MiB | 8.3 MiB | 4.20% | 114ms | 61.5s | 62.5 MiB | 58.5s | 189 MiB |
58-
| Chrome 78.0.3904.97 → 108 | 145 MiB | 5.6 MiB | 3.84% | 92ms | 78.4s | 57.6 MiB | 80.8s | 186 MiB |
55+
| Wine 4.18 → 4.19 | 201 MiB | 203 KiB | 0.10% | 0.12s | 3.7s | 60.9 MiB | 4.2s | 189 MiB |
56+
| Linux 5.3 → 5.4 | 895 MiB | 6.1 MiB | 0.68% | 0.52s | 1m 4s | 60.6 MiB | 1m 6s | 573 MiB |
57+
| Firefox 71.0b11 → b12 | 198 MiB | 8.3 MiB | 4.20% | 0.11s | 1m 2s | 62.5 MiB | 58.5s | 189 MiB |
58+
| Chrome 78.0.3904.97 → 108 | 145 MiB | 5.6 MiB | 3.84% | 0.09s | 1m 18s | 57.6 MiB | 1m 21s | 186 MiB |
5959

6060
### Comparison with bsdiff and xdelta3
6161

@@ -74,21 +74,21 @@ All three tools with default settings. bsdiff 4.3, xdelta3 3.0.11 — both singl
7474

7575
| Test case | bidiff | bsdiff | xdelta3 |
7676
|-----------|--------|--------|---------|
77-
| Wine 4.18 → 4.19 | **424ms** | 188.2s | 1.0s |
78-
| Linux 5.3 → 5.4 | **2.1s** | 906.0s | 8.5s |
79-
| Firefox 71.0b11 → b12 | **757ms** | 287.2s | 18.8s |
80-
| Chrome 78.0.3904.97 → 108 | **789ms** | 187.1s | 18.6s |
77+
| Wine 4.18 → 4.19 | **0.42s** | 3m 8s | 1.0s |
78+
| Linux 5.3 → 5.4 | **2.1s** | 15m 6s | 8.5s |
79+
| Firefox 71.0b11 → b12 | **0.76s** | 4m 47s | 18.8s |
80+
| Chrome 78.0.3904.97 → 108 | **0.79s** | 3m 7s | 18.6s |
8181

8282
#### Patch time
8383

8484
| Test case | bidiff | bsdiff | xdelta3 |
8585
|-----------|--------|--------|---------|
86-
| Wine 4.18 → 4.19 | **125ms** | 1,285ms | 418ms |
87-
| Linux 5.3 → 5.4 | **503ms** | 8,804ms | 2,099ms |
88-
| Firefox 71.0b11 → b12 | **136ms** | 2,448ms | 1,450ms |
89-
| Chrome 78.0.3904.97 → 108 | **110ms** | 1,453ms | 1,139ms |
86+
| Wine 4.18 → 4.19 | **0.13s** | 1.29s | 0.42s |
87+
| Linux 5.3 → 5.4 | **0.50s** | 8.8s | 2.1s |
88+
| Firefox 71.0b11 → b12 | **0.14s** | 2.4s | 1.5s |
89+
| Chrome 78.0.3904.97 → 108 | **0.11s** | 1.5s | 1.1s |
9090

91-
bsdiff produces the smallest patches (suffix array matching finds optimal matches) but is orders of magnitude slower to diff — 188–906 seconds vs bidiff's sub-second times. xdelta3 is faster than bsdiff but still 2–25x slower than bidiff and produces the largest patches. bidiff lands in the middle on patch size while being the fastest at both diffing and patching thanks to parallel scanning and parallel zstd decompression.
91+
bsdiff produces the smallest patches (suffix array matching finds optimal matches) but is orders of magnitude slower to diff — 3–15 minutes vs bidiff's sub-second times. xdelta3 is faster than bsdiff but still 2–25x slower than bidiff and produces the largest patches. bidiff lands in the middle on patch size while being the fastest at both diffing and patching thanks to parallel scanning and parallel zstd decompression.
9292

9393
## Workspace structure
9494

0 commit comments

Comments
 (0)