Я, конечно, дико извиняюсь...
Вот есть код:
## Код:
```
MODULE WladTest;
IMPORT
    StdLog,
    WinApi,
    Kernel,
    Services;
(**************************************************************************)
CONST
   MAX_COUNT = 10000000;      (* <<< 1 <<< *)
   (*MAX_COUNT = 100000000;*) (* <<< 2 <<< *)
(**************************************************************************)
TYPE
    Class =  POINTER TO RECORD
               i : INTEGER;
               d : REAL;
               c : Class;
            END;
(**************************************************************************)
PROCEDURE Test*;
    VAR
        i : INTEGER;
        ticks : LONGINT;
        c, c1 : Class;
BEGIN
    (*Kernel.Collect;*)
    c := NIL;
    StdLog.Ln;  StdLog.String("starting loop...");  StdLog.Ln;
    ticks := Services.Ticks();
    FOR i := 1 TO MAX_COUNT DO
        NEW(c1);  c1.i := 100;  c1.d := 1000.0;  c1.c := c;
        c := c1;
    END;    
    StdLog.String("...finished. time spent(ticks): ");  StdLog.Int( Services.Ticks() - ticks );  StdLog.Ln;
END Test;

END #WladTest.Test
#Kernel.Collect
```

С таким значением количества итераций у меня на машине он выполняется (при раскомментированном Kernel.Collect;) где-то в пределах 953 – 1098 миллисекунд. При увеличении верхней границы цикла на порядок машина задумывается, начинает тарахтеть винтом... и с чем я совершенно согласен! Не согласен я с тем, что мне приходится перегружать снимать весь ББ с выполнения. К пресловутому Ctrl-Break ББ холоден... :о) :о(