I can not reproduce your results

the example little understood (present a module Log and KernelLog)

My results:

Allocation of X: 0

Allocation of Y: 594

Allocation of Z: 0

Done!

Allocation of X: 0

Allocation of Y: 3609

Allocation of Z: 0

Done!

Allocation of X: 0

Allocation of Y: 531

Allocation of Z: 0

Done!

Allocation of X: 0

Allocation of Y: 562

Allocation of Z: 0

Done!

Allocation of X: 0

Allocation of Y: 547

Allocation of Z: 0

Done!

Allocation of X: 0

Allocation of Y: 531

Allocation of Z: 0

Done!

Allocation of X: 0

Allocation of Y: 546

Allocation of Z: 0

Done!

MODULE Test;

IMPORT Kernel,Log:=KernelLog;

PROCEDURE Test*;

VAR

t: Kernel.MilliTimer;

time: LONGINT;

X, Y, Z: POINTER TO ARRAY OF LONGREAL;

BEGIN

Kernel.SetTimer(t,0);

NEW(X,4);

time := Kernel.Elapsed(t);

Log.String('Allocation of X: '); Log.Int(time,0); Log.Ln;

Kernel.SetTimer(t,0);

NEW(Y,4096*4096);

time := Kernel.Elapsed(t);

Log.String('Allocation of Y: '); Log.Int(time,0); Log.Ln;

Kernel.SetTimer(t,0);

NEW(Z,4);

time := Kernel.Elapsed(t);

Log.String('Allocation of Z: '); Log.Int(time,0); Log.Ln;

Log.String('Done!'); Log.Ln;

END Test;

END Test.Test~