Простой тест. На форме размещается десяток дропов, каждый из которых заполняется несколькими десятками записей.

Открытие такой формы у меня занимает 370 мсек, а обновление через Dialog.UpdateList - 655 мсек.

И это всего лишь 10 контролов. Мы всегда подозревали, что использование виндовых контролов в ББ дело зело тормозное, ну а приведённый пример являет собой зрелище просто душераздирающее, как говорил Иа.

## Код:
```
MODULE PrivBenchmark;

   IMPORT 
      Services, StdLog, StdCmds, Dialog, Ports, Strings, Controls, Views,FormModels, FormViews;

   VAR
      global*: RECORD
         drop*: ARRAY 10 OF Dialog.List;
      END;

   PROCEDURE InitProp (VAR p: Controls.Prop);
   BEGIN
      NEW(p);
      p.link := ""; p.label := ""; p.guard := ""; p.notifier := "";
      p.level := 0;
      p.opt[0] := FALSE; p.opt[1] := FALSE;
      p.opt[2] := FALSE; p.opt[3] := FALSE;
      p.opt[4] := FALSE
   END InitProp;

   PROCEDURE NewDrop (i: INTEGER): Views.View;
      VAR prop: Controls.Prop; s: ARRAY 10 OF CHAR;
   BEGIN
      InitProp(prop);
      Strings.IntToString(i, s);
      prop.link := 'PrivBenchmark.global.drop['+s+']';
      RETURN Controls.dir.NewListBox(prop)
   END NewDrop;

   (* Проверка скорости работы Dialog.UpdateList; *)
   PROCEDURE Do1*;
      VAR m: FormModels.Model; i, j, x, y: INTEGER; ticks: LONGINT;
   BEGIN
      m := FormModels.dir.New();
      FOR i := 0 TO 9 DO
         FOR j := 0 TO 30 DO
            global.drop[i].SetItem(j, 'Есть только миг')
         END;
         x := 0;
         y := i * 6*Ports.mm;
         m.Insert(NewDrop(i), x, y, x + 50*Ports.mm, y + 6*Ports.mm);
      END;
      ticks := Services.Ticks();
      Views.OpenView(FormViews.dir.New(m));
      StdLog.String('Форма с дропами открылась за '); 
      StdLog.Int((Services.Ticks()-ticks));
      StdLog.String(' миллисекунд');
      StdLog.Ln;
      ticks := Services.Ticks();
      FOR i := 0 TO 9 DO
         Dialog.UpdateList(global.drop[i])
      END;
      StdLog.String('Дропы обновились за '); 
      StdLog.Int((Services.Ticks()-ticks));
      StdLog.String(' миллисекунд');
      StdCmds.SetMaskMode;
      StdLog.Ln;
   END Do1;

END PrivBenchmark.

PrivBenchmark.Do1;
```
