Fórum ReportMemoryLeaksOnShutdown: Memory Leak em Delphi #375385
28/09/2009
0
program Project1;
uses
Forms,
SysUtils,
Unit1 in ´Unit1.pas´ ;
{$R *.res}
begin
ReportMemoryLeaksOnShutdown := True;
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
datetostr(date);
end.Da Memory Leak ??????? ReportMemoryLeaksOnShutdown
PQ ???
obs: Não tem nada no Form ... O Projeto esta Vazio , digamos assim
Marco Salles
Curtir tópico
+ 0Posts
28/09/2009
Afarias
T+
Gostei + 0
28/09/2009
Marco Salles
13-20 Bytes:String x1
Gostei + 0
28/09/2009
Joaoshi
datetostr(date);
Gostei + 0
28/09/2009
Osocram
Da a impressão que essa linha
datetostr(date);
acabou alocando o resultado em memoria em algum lugar, mais provavel que foi no ´limbo´.
E como antes de fechar o projeto tinha algo em memoria ele deu memory leak
Gostei + 0
28/09/2009
Marco Salles
uses
Forms,
SysUtils,
Unit1 in ´Unit1.pas´ ;
{$R *.res}
begin
ReportMemoryLeaksOnShutdown := True;
datetostr(date); /////////////Colocando aqui oooo
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.Gostei + 0
28/09/2009
Afarias
o q exatamente esta linha de comando faz?? não parece fazer sentido algum
T+
Gostei + 0
28/09/2009
Marco Salles
Nenhum sentido ...
para quem quiser simular o erro , fica mais fácil
claro que meu dpr original é bem mais complexo . Mas fui depurando e no
gargalho cheguei a esta Instrução ... Então para facilitar a comunicação so
coloquei a instrução que esta dando Memory Leak para que outros atestem
e deem a opinião , simulando a experiencia em suas resptivas máquinas
Gostei + 0
28/09/2009
Afarias
VariavelString := DateToStr(Date);
??
T+
Gostei + 0
28/09/2009
Marco Salles
Showmessage .
program Project1;
uses
Forms,
SysUtils,
dialogs,
Unit1 in ´Unit1.pas´ ;
{$R *.res}
var
mens:String;
begin
ReportMemoryLeaksOnShutdown := True;
mens:=Datetostr(date);
Showmessage(mens);
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.Algume ja simulou este codigo no Delphi2007 ???
Gostei + 0
28/09/2009
Afarias
Isto teoricamente ocorre apenas para strings como variáveis globais atribuídas por funções (que retornam string). Exatamente o seu caso.
Entretanto isto não é um memory leak real. Com o encerramento do processo a memória será devolvida ao SO como parte do sistema de ´finalização´ do Delphi voltado para variáveis globais -- apenas que o gerenciador de memória (FastMM) não toma conhecimento, e assim reporta como memory leak
T+
Gostei + 0
28/09/2009
Afarias
Ela deve ser sempre a primeira da uses no DPR ou diversos memory leaks falsos são reportados.
Imagino q no D2007 a IDE/compilador inclua automaticamente mas, se não tiver certeza, coloque explicitamente.
Tb verifique se o seu Delphi/FastMM está atualizado.
T+
Gostei + 0
30/09/2019
Vinicius Silva
program Project1;
[code:1:fe11bf0dd5]uses
Forms,
SysUtils,
Unit1 in ´Unit1.pas´ ;
{$R *.res}
begin
ReportMemoryLeaksOnShutdown := True;
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm1, Form1);
Application.Run;
datetostr(date);
end.[/code:1:fe11bf0dd5]
Da Memory Leak ??????? ReportMemoryLeaksOnShutdown
PQ ???
obs: Não tem nada no Form ... O Projeto esta Vazio , digamos assim
Como fazer gravar o log com os memory leaks encontrados? Por que ativando o ReportMemory ele so exibe um dialog quando fecha a aplicação.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)