Может быть я не правильно создаю/уничтожаю компоненты?
Или это особенности работы менеджера памяти FPC ? Если это менеджер памяти такой - может быть есть способ запустить "сборку мусора"?
В приведенном ниже примере:
- запуск приложения: 3472kB
- после создания компонентов: 10220kB
- после уничтожения компонентов: 9708kB
Как вернуть системе эти 6 мегабайт?
- Код: Выделить всё
- unit Unit1;
 {$mode objfpc}{$H+}
 interface
 uses
 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
 type
 { TForm1 }
 TForm1 = class(TForm)
 Button1: TButton; //Показать использование памяти
 Button2: TButton; //Создать компоненты
 Button3: TButton; //Уничтожить компоненты
 Label1: TLabel;
 ScrollBox1: TScrollBox;
 procedure Button1Click(Sender: TObject);
 procedure Button2Click(Sender: TObject);
 procedure Button3Click(Sender: TObject);
 private
 { private declarations }
 public
 { public declarations }
 end;
 var
 Form1: TForm1;
 implementation
 {$R *.lfm}
 { TForm1 }
 procedure TForm1.Button1Click(Sender: TObject);
 var
 sl: TStringList;
 begin
 {$IFDEF UNIX}
 sl:= TStringList.Create;
 sl.LoadFromFile('/proc/self/status');
 sl.NameValueSeparator:= ':';
 Label1.Caption:= Trim(sl.Values['VmData']);
 sl.Free;
 sl:= nil;
 {$ENDIF}
 end;
 procedure TForm1.Button2Click(Sender: TObject);
 var
 ctrlChild: TEdit;
 lCntr: Longint;
 begin
 ScrollBox1.AutoScroll:= False;
 for lCntr:= 1 to 1000 do
 begin
 ctrlChild:= TEdit.Create(ScrollBox1);
 ctrlChild.Name:= 'ctrl' + IntToStr(lCntr);
 ctrlChild.Top:= ctrlChild.Height * (lCntr - 1);
 ctrlChild.Text:= 'ctrl' + IntToStr(lCntr);
 ctrlChild.Parent:= ScrollBox1;
 end;
 ScrollBox1.AutoScroll:= True;
 end;
 procedure TForm1.Button3Click(Sender: TObject);
 var
 lCntr: Longint;
 begin
 ScrollBox1.AutoScroll:= False;
 for lCntr:= ScrollBox1.ComponentCount downto 1 do
 begin
 ScrollBox1.Components[lCntr - 1].Free;
 end;
 ScrollBox1.AutoScroll:= True;
 end;
 end.
Пробовал на Lazarus 0.9.30 GTK2, Debian/Ubuntu i386/amd64.





 . "Миллиард китайцев попробовали пароль 12345 на доступ к сайту pentagon.gov, на половине попыток компьютер пентагона согласился."
. "Миллиард китайцев попробовали пароль 12345 на доступ к сайту pentagon.gov, на половине попыток компьютер пентагона согласился."