Página 4 de 4

Liberar memoria ao fechar Formulario com objeto criado

Enviado: 29 Set 2022 16:29
por carlaoonline
JoséQuintas escreveu:Resta fazer teste no Windows 7, por exemplo, pra testar o sistema operacional.
Executei 3 vezes em cada, um por vez (mas não fechei até ter os 3 resultados)

Aqui o programa teste do Quintas em um Win 7 64 Bits com 1 Gb de RAM
Test_Mem_Win7_64.png

Aqui o programa teste do Quintas em um Win 10 64 Bits com 3 Gb de RAM
Test_Mem_Win10_64.png

Porém mostra resultados diferentes a cada execução....

Num Windows Server 2012 com 8gb executei 3 vezes e fechei os 3, depois de buscar um café executei mais 3 vezes e deu resultados bem diferentes.....

Primeira vez (antes do café)
Teste01_memo_WinServer2012_08GbRAM_Harbour32_Bcc58.png
Na segunda vez (já com o café na mesa...)
Teste02_memo_WinServer2012_08GbRAM_Harbour32_Bcc58.png
No caso do servidor que executata várias funções em segundo plano, até poderia ser relacionado a isso, porém nos demais tb ocorre o mesmo.......Só se for o café....

Liberar memoria ao fechar Formulario com objeto criado

Enviado: 29 Set 2022 23:53
por JoséQuintas
O resultado do Windows 7 está mais homogênio, mas.... falta saber se depois de um café haveria diferença... kkkk

Alguns resultados são 200 vezes maiores, isso é preocupante, porque é muita coisa.
Parece que tem a ver com quanto foi usado durante o processo, mas não explica cada vez ter um resultado diferente.

O mais complicado agora é: como medir corretamente o consumo de memória ? o que usar de base ?

Liberar memoria ao fechar Formulario com objeto criado

Enviado: 30 Set 2022 11:52
por JoséQuintas
img1.png
img2.png
img2.png (10.51 KiB) Exibido 2162 vezes
Teste postado por usuário internacional no harbour-users.
Por enquanto apenas a constatação de diferença.

Liberar memoria ao fechar Formulario com objeto criado

Enviado: 11 Out 2022 11:13
por JoséQuintas
Nenhuma novidade.

Alterei minha rotina de erros pra ver o que dá, já que tenho erros eventuais.

Código: Selecionar todos

   IF nDetail > 0
      Errorsys_WriteErrorLog()
      Errorsys_WriteErrorLog( "Error on "       + Dtoc( Date() ) + " " + Time() )
      Errorsys_WriteErrorLog( "EXE Name; " + hb_Argv(0) )
      Errorsys_WriteErrorLog( "JPA: "           + AppVersaoExe() )
      Errorsys_WriteErrorLog( "Memory:" + Ltrim( Str( Memory(0) / 1024 / 1024 ) ) + " GB" )
      Errorsys_WriteErrorLog( "Mem.VM:" + Ltrim( Str( Memory( HB_MEM_VM ) / 1024 / 1024 ) ) + " GB" )
Lembro quando usei MSVC 2010, que precisava instalar o service pack.
O motivo foi porque a Microsoft mudou a forma do C++ "pedir memória ao windows", e sem o service pack dava erro.

Porque o comentário:
A mudança simplesmente tornou o compilador inválido, da própria Microsoft, e precisou de nova versão.
Depois disso, sempre fiquei na dúvida se podemos manter as ferramentas sem atualização.