GARANTIR DESCONTO

Fórum Quantidade de Varíaveis X Performance #355077

08/03/2008

0

Olá colegas,

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

Armindo

Responder

Posts

08/03/2008

Onjahyr

Bom, Todas elas estão na memória, dependendo do que está armazenado e a quantidade, sim...

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!


Responder

Gostei + 0

08/03/2008

Armindo

Bom, Todas elas estão na memória, dependendo do que está armazenado e a quantidade, sim... Por que você não utiliza arquivos tipados do pascal: [b:9f9c9677be]TRecord[/b:9f9c9677be], ou [b:9f9c9677be]Array[/b:9f9c9677be], 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:9f9c9677be]CUIDADO[/b:9f9c9677be] com variável global, use com moderação!


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


Responder

Gostei + 0

08/03/2008

Edilcimar

uma variável global é utilizada em todo o programa, ela ´nasce´ quando inicia o programa é só ´morre´ quando o programa é finalizado, portanto utiliza a memória o tempo todo, quanto a uma variável pública, a mesma nasce com um form, é utilizado por ele e por qualquer form de descenda dele, e é destruída com ele, uma variável privada, nasce com um form e morre quando o mesmo é fechado, uma variável local, nasce quando vc acessa uma procedure e morre quando deixa de utilizá-la


Responder

Gostei + 0

08/03/2008

Armindo

Vamos supor o seguinte:
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?


Responder

Gostei + 0

08/03/2008

Onjahyr

Não haverá, mas dependendo do que seu programa faz pode ser que outros meios seja mais conveniênte.
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.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar