LIXO DE MEMORIA?

3LTON 08/09/2006 15:23:21
#170243
Alguém já ouviu falar em lixo de memória?
USUARIO.EXCLUIDOS 08/09/2006 15:27:21
#170245

USUARIO.EXCLUIDOS 09/09/2006 14:23:55
#170412
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.
CASPEREARK 09/09/2006 15:16:38
#170421
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!
USUARIO.EXCLUIDOS 09/09/2006 16:12:39
#170430
Amigo casper , trabalho com o vb a mais de dez anos
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.
CLEVERSON.F 09/09/2006 16:37:16
#170432
Lixo de memoria eh uma realidade, quer fazer um teste?
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
HARRY.POTTER 09/09/2006 16:47:46
#170435
é, mas tenta declarar o X sempre, por exemplo, colocando o "Dim x As Integer" dentro da SUB...
USUARIO.EXCLUIDOS 09/09/2006 16:56:32
#170438
mas gente , assim pode acontecer mesmo , mas to jeito que falei nao

LIONHEART 09/09/2006 21:36:27
#170455
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.
3LTON 10/09/2006 12:55:50
#170509
Criei esse post pois uma vez compilei meu sistema e quando roda em um determinado momento dava falha. Abri o fonte para verificar mas nao encontrei erro nenhum. compilei outra vez mesmo nao encontrando falhas. O problema nao ocorreu mais.

Já ouvi falar que quando formos compilar nossos projetos devemos fechar o VB e abri-lo de novo para evitar problemas desse tipo.
Tópico encerrado , respostas não são mais permitidas