Fórum Quantidade de Varíaveis X Performance #355077
08/03/2008
0
Uma dúvida simples que sempre tive, mas nunca consegui comprovar: a quantidade de variáveis declaradas pode comprometer a performance do sistema?
Trabalho com muitas rotinas parecidas e que utilizam variaveis. Para nao declará-las em todos os módulos, faço isso na unit principal. A questão que gera a minha dúvida é que, como o form principal do sistema fica sempre ativo, as variáveis ali declaradas também estarão sempre ativas. Se fossse num outro form, a variável seria eliminada da memória assim que o form fosse destruído, certo?
Então, se eu tiver tipo umas 60, 70 variáveis declaradas na unit principal do projeto, isso pode comprometer o desempenho do sistema. Me refiro a velocidade do programa, claro.
Obrigado.
Armindo
Curtir tópico
+ 0Posts
08/03/2008
Onjahyr
Por que você não utiliza arquivos tipados do pascal: [b:cb0872285c]TRecord[/b:cb0872285c], ou [b:cb0872285c]Array[/b:cb0872285c], ou TIniFile ou então TRegistry?
Variáveis é bom você criar somente nas procedures ou nas functions, ao sair dela (ao executar um processo) ela será destruída.
[b:cb0872285c]CUIDADO[/b:cb0872285c] com variável global, use com moderação!
Gostei + 0
08/03/2008
Armindo
Prezado onjahyr,
Obrigado pela resposta, mas minha dúvida ainda continua.
Vamos a um exemplo mais prático:
Situação 1
Var
VReposta1, VReposta2, VReposta3, VReposta4, VReposta5 : boolean;
Situação 2
Var
VRespostas : Array[1..5] of boolean;
Pelo que entendi da sua resposta, a situação 2 seria mais recomendada nesse caso?
Em relação ao seu comentário: ´CUIDADO com variável global, use com moderação!´, poderia ser mais específico? Qual o seriam os riscos ou problemas com variáveis globais?
Obrigado
Gostei + 0
08/03/2008
Edilcimar
Gostei + 0
08/03/2008
Armindo
Desenvolve dois projeto:
[b:417f83f9f1]No projeto 1[/b:417f83f9f1], crio 30 variáveis globais to dipo boolean e mais 30 variáveis globais to tipo Tdate. Atribuo-lhes false e date(), respecitvamente, no create do form principal.
No projeto 2: Todas as rotinas, exatamente iguais ao projeto 1, só que sem essas 60 variáveis.
Pergunto: haverá substancial diferença na performance entre os dois projetos?
Gostei + 0
08/03/2008
Onjahyr
Você usa estas variáveis o tempo todo no programa? Se a resposta for ´sim´, então deixe do jeito que você está fazendo mesmo!
O programa é grande (com muitos forms, muitos processos, etc...) e você não usa estas variáveis constantemente (apenas numa parte do programa ou num processo) então, seria melhor você armazenar num TIniFile ou TRegistry e depois exluir da memória assim que o processo finalizar.
Tudo depende do que você está fazendo e do período de tempo que vai permanecer fazendo, se lê e salva o tempo todo estas variáveis...
Blz.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)