What takes a long time is formatting the output. Even though just a small blue box is shown, the output is in fact very large, and Mathematica probably tries to process it before deciding that it's just too big to show.
AbsoluteTiming only measures the time taken to compute something (by the kernel), not the time taken to format it (by the front end, and, partially, by the kernel using
So use a semicolon to suppress the output and it will be fast.
Apart from this, there's a mistake in how you use
// AbsoluteTiming. Compare:
a = 1 // f
(* f *)
(* f *)
a = 1; // f
(* f[Null] *)
(* 1 *)
I assume you didn't want to record the result of
AbsoluteTiming but the result of the subtraction. Adding the semicolon will fix this as well.