diff -up diffutils-3.3/src/analyze.c.me diffutils-3.3/src/analyze.c
--- diffutils-3.3/src/analyze.c.me 2022-12-13 23:52:03.027335306 +0100
+++ diffutils-3.3/src/analyze.c 2022-12-13 23:56:10.918974724 +0100
@@ -575,11 +575,12 @@ diff_2_files (struct comparison *cmp)
ctxt.heuristic = speed_large_files;
/* Set TOO_EXPENSIVE to be approximate square root of input size,
- bounded below by 256. */
+ bounded below by 4096. 4096 seems to be good for
+ circa-2016 CPUs; see Bug#16848 and Bug#24715 */
too_expensive = 1;
for (; diags != 0; diags >>= 2)
too_expensive <<= 1;
- ctxt.too_expensive = MAX (256, too_expensive);
+ ctxt.too_expensive = MAX (4096, too_expensive);
files[0] = cmp->file[0];
files[1] = cmp->file[1];