Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 5 Próxima »

A função ShowInfoSmartHeap tem como objetivo auxiliar a verificação de aumento, acumulo, ou simplesmente para um gerenciamento de memória para o programador checar em determinada "instância" do seu programa como esta os contadores de memória através do smartheap.

Essa função irá exibir todas as informações de alocação em todas as threads, logo tem como objetivo apenas a caráter de estudo, logo não deve ser usado em um ambiente de produção, pois as informações serão distorcidas.

Sintaxe

 

call ShowInfoSmartHeap(<param1>,<param2>)

Parâmetros

NomeTipoDescriçãoObrigatórioReferênciaObservações
<param1>Char

Parametro para indicar o ponto onde foi "acionado" a função para o programador

NN
<param2>Array bidimensionalArray de duas dimensões, onde cada elemento contem outro array com duas posições: Kilobytes, Count.NSSe observado no conout da função no log, é a mesma informação que é listada em cada linha de pool: Ex: pooltString ...  143.91 kB. Count    731

Retorno

NomeTipoDescriçãoObservações

Observações

Essa função só esta disponível em builds superiores ao build 7.00.131227A do dia 11/11/2015. Só funciona em builds release.

Exemplos

Exemplo 

database logix

main
DEFINE infos  ARRAY[50] OF RECORD
                                 info1 INTEGER,
                                 info2 INTEGER
                              END RECORD
define texto varchar(100)
define i smallint

call ShowInfoSmartHeap("inicio",infos)
call conout("Informacao relevante: " || infos[1].info1 || " kb , Count " || infos[1].info2 )
call conout("Informacao relevante: " || infos[2].info1 || " kb , Count " || infos[2].info2 )
call conout("Informacao relevante: " || infos[3].info1 || " kb , Count " || infos[3].info2 )
call conout("FIZ UM CONOUT SIMPLES.. QUAL SERIA O CONSUMO DO SMARTHEAP?")
call ShowInfoSmartHeap("Antes leitura do Cursor: Programa 1", infos)
call conout("Informacao relevante: " || infos[3].info1 || " kb , Count " || infos[3].info2 )
call teste_4gl_showinfosmartheap01()
call ShowInfoSmartHeap("Apos leitura do Cursor",infos)

for i = 1 to 10 
let texto = "Teste de repeticoes: " || i
call teste_4gl_showinfosmartheap02()
call ShowInfoSmartHeap(texto,infos)
end for

end main

FUNCTION teste_4gl_showinfosmartheap01()

      define a char(50)
      define j smallint
declare cursor1 cursor for SELECT COD_CLIENTE  FROM CLIENTES
foreach cursor1 into a
call conout (a)
let j = j+1
if j >100 then
exit foreach
end if 
end foreach

END FUNCTION

function teste_4gl_showinfosmartheap02()
run 'fglrun teste_4gl_showinfosmartheap01.4gl'
end function

Veja também

ShowInfoSmartHeap - ADVPL

  • Sem rótulos