LIXO DE MEMORIA?
Ele falo o Seguinte:
Quando dimenssionamos uma variavel em vb do tipo numerica, temos que em seguida setar ela como zero ,porque ela pode pegar lixo de memória e vim com um valor alto.
Quando disse isso , Dicordei na hora , é Logico que ele fez faculdade entao ele era o bam bam bam né, na minha opniao isso nao existe mais. Isso poderia ter acontecido nos primordios da progração em que se programava em Assembler ou c puro mesmo.
Se alguem discordar me explique entao que irei analisar
Espero ter ajudado.
Citação:CARDOSO2911 escreveu:
Olha na minha opniao e pelo que eu sei , isso acontecia nos primordios em ambientes DOS , ja que vc era responsavel por acessar diretamente a memoria e endereçamento e tudo mais, so que isso no windows nao acontece ja que o proprio S.O cuida disso de forma inteligente , vou contar uma coisa que um professor meu me falou e quando ele falo isso , dei risada da cara dele
Ele falo o Seguinte:
Quando dimenssionamos uma variavel em vb do tipo numerica, temos que em seguida setar ela como zero ,porque ela pode pegar lixo de memória e vim com um valor alto.
Quando disse isso , Dicordei na hora , é Logico que ele fez faculdade entao ele era o bam bam bam né, na minha opniao isso nao existe mais. Isso poderia ter acontecido nos primordios da progração em que se programava em Assembler ou c puro mesmo.
Se alguem discordar me explique entao que irei analisar
Espero ter ajudado.
discordo!
o lixo de memória é uma realidade, é só vc ver o numero de programas utilitarios que existem pra limpar a memória , como o RamBooster por exemplo!
Nem sempre é culpa do programador, mas algums cuidados devem ser tomados para evitar que seu programa deixe lixo na memória, como destruir objetos (classes) com Nothing ao terminar sua funcionalidade, uso do minimo de variaveis e etc ...
O lixo de memória pode ser um problema quando se trabalha sim com numeros, é sempre recomendado inicializar sua variavel com 0 ou qualquer outro valor! Em vb é dificil ocorrer, mas pode sim!
Eu já tive problemas com variaveis por causa de lixo em PHP e vb.net, pq não teria em vb6?
As vezes vc ver problemas em loopings, principalmente me "whiles" e fica se perguntando o pq, vc confere a sintaxe varias vezes e vê que a lógica está certa, aà é só vc pré-definir com 0 ou com outro atributo que o programa necessite que o mesmo começa a funcionar!
Duvida sanada = tópico encerrado [s96]
Boa sorte!
nunca aconteceu isso comigo ,no caso de seu programa deixa supostos "Lixos" na memoria ,pode ser que isso aconteceça ja que por exemplo se nao destruir um objeto antes de sair ou algo parecido, mas nunca um programa seu vai herdar qualquer lixo de memoria deixada pelos outros programas, isso é impossivel , ja que quando declaramos uma variavel é alocada um espaço novo na RAM em um endereçamento novo, o que acontece é que pode sim outros programas deixar dados alocados na memoria e sim ocupar espaço na ram desperdiçando memoria , mas repito seu programa herdar "Lixo de memoria" , isso nao acontece.
programas para limpar memoria ,isso normal devido a o que vc mesmo disse quanto a destruir objetos ou algo parecido.
Se discordar me explique com mais clareza que irei analisar
vc conhece como o windows lida com endereçamento de memorias ?
Grato.
crie 2 forms, no primeiro (FORM1) coloque um botao e no click dele
[c]Private Sub Command1_Click()
Form2.Show
End Sub
[/c]
no form2 coloque
Dim x As Integer
[c]Private Sub Form_Load()
If x = 0 Then
MsgBox "X limpo"
x = 50
Else
MsgBox "x com lixo"
End If
End Sub
[/c]
abra o form2 na primeira vez, vai cair no X Limpo, entretanto, feche ele e abra novamente, vai cair no X Sujo...
a variavel pega o conteudo q tinha anteriormente
Citação:CARDOSO2911 escreveu:
mas gente , assim pode acontecer mesmo , mas to jeito que falei nao
Concordo plenamente contigo.
Um programa que vc fez nunca vai aproveitar valor de um programa que já tenha existido..
O Windows tem uma das threads que limpa o espaço em memoria ocupado por outros sistemas que está em desuso.
em Java, por exemplo, tem um comando Garbage (alguma coisa) que FORÇA a limpeza.
Em DOS existia, pois praticamente não existia a multitarefa, então o programador era obrigado a se preocupar com isso.
Hoje não, o SO é um pouco mais inteligente e se vira pra limpar isso. Não tem com o que se preocupar.
Já ouvi falar que quando formos compilar nossos projetos devemos fechar o VB e abri-lo de novo para evitar problemas desse tipo.