Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

classic Classic list List threaded Threaded
22 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

Jhonathan Paulo Banczek
Estou usando Linux/Ubuntu (13.04, 32bit, 4GB ram, proc. I3 ) e abri o monitor de sistema pra acompanhar o
uso de memória em Lua 5.2.1 em comparação a Python 3.3.1, e obtive os seguintes resultados.

> Abrir o interpretador:
>> Consumo em Lua: 208 k
>> Consumo de Memória em Python: 2.2 MB

> criar uma lista com 100.000 elementos do tipo numérico
>> Consumo em Lua: 1.4 MB
>> Consumo de Memória em Python: 4.2 MB

> criar uma lista com 1.000.000 elementos do tipo numérico
>> Consumo em Lua: 9.4 MB
>> Consumo de Memória em Python: 21.4 MB 

> criar uma lista com 2.000.000 elementos do tipo numérico
>> Consumo em Lua: 25.4 MB
>> Consumo de Memória em Python: 40.8 MB

> criar uma lista com 5.000.000 elementos do tipo numérico
>> Consumo em Lua: 80.4 MB
>> Consumo de Memória em Python: 98.7 MB

> criar uma lista com 10.000.000 elementos do tipo numérico
>> Consumo em Lua:  208 MB
>> Consumo de Memória em Python: 194.6 MB

a partir desse ponto, lua consome mais memória.
Observação a cada vez que troco o numero de elementos eu uso sempre a mesma variavel ou seja
x = 100000
x = 1000000
x = 2000000
x = 5000000
x = 10000000

tanto pra Python quanto pra Lua

Agora vem a dúvida, quando eu faço em Python x = None (o que corresponde ao NIL no Lua)
acontece isso

Atribuir None a variavel x em Python, Memória: 2.3 MB 

Atribuir nil a variavel x em Lua, Memória: 204.8 MB

em Lua a memória não está sendo desalocada, e caso eu vá usando Lua a memória só vai aumentando

Como contornar isso? o coletor de lixo não deveria gerenciar, ou quando atribui-se algum valor a variavel x a memória não deveria desalocar?


Obrigado.

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

Michel Braz de Morais
Olha amigo ... não sei a resposta pois sou novo aqui e no Lua mas achei sensacional seu teste .....
Muito bom :)



att,

Michel Braz de Morais

Analista / Desenvolvedor de sistemas


Em 9 de setembro de 2013 13:48, Jhonathan Paulo Banczek <[hidden email]> escreveu:
Estou usando Linux/Ubuntu (13.04, 32bit, 4GB ram, proc. I3 ) e abri o monitor de sistema pra acompanhar o
uso de memória em Lua 5.2.1 em comparação a Python 3.3.1, e obtive os seguintes resultados.

> Abrir o interpretador:
>> Consumo em Lua: 208 k
>> Consumo de Memória em Python: 2.2 MB

> criar uma lista com 100.000 elementos do tipo numérico
>> Consumo em Lua: 1.4 MB
>> Consumo de Memória em Python: 4.2 MB

> criar uma lista com 1.000.000 elementos do tipo numérico
>> Consumo em Lua: 9.4 MB
>> Consumo de Memória em Python: 21.4 MB 

> criar uma lista com 2.000.000 elementos do tipo numérico
>> Consumo em Lua: 25.4 MB
>> Consumo de Memória em Python: 40.8 MB

> criar uma lista com 5.000.000 elementos do tipo numérico
>> Consumo em Lua: 80.4 MB
>> Consumo de Memória em Python: 98.7 MB

> criar uma lista com 10.000.000 elementos do tipo numérico
>> Consumo em Lua:  208 MB
>> Consumo de Memória em Python: 194.6 MB

a partir desse ponto, lua consome mais memória.
Observação a cada vez que troco o numero de elementos eu uso sempre a mesma variavel ou seja
x = 100000
x = 1000000
x = 2000000
x = 5000000
x = 10000000

tanto pra Python quanto pra Lua

Agora vem a dúvida, quando eu faço em Python x = None (o que corresponde ao NIL no Lua)
acontece isso

Atribuir None a variavel x em Python, Memória: 2.3 MB 

Atribuir nil a variavel x em Lua, Memória: 204.8 MB

em Lua a memória não está sendo desalocada, e caso eu vá usando Lua a memória só vai aumentando

Como contornar isso? o coletor de lixo não deveria gerenciar, ou quando atribui-se algum valor a variavel x a memória não deveria desalocar?


Obrigado.

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

Thalles Robson



Em 9 de setembro de 2013 18:33, Michel Braz de Morais <[hidden email]> escreveu:
Olha amigo ... não sei a resposta pois sou novo aqui e no Lua mas achei sensacional seu teste .....
Muito bom :)



att,

Michel Braz de Morais

Analista / Desenvolvedor de sistemas


Em 9 de setembro de 2013 13:48, Jhonathan Paulo Banczek <[hidden email]> escreveu:

Estou usando Linux/Ubuntu (13.04, 32bit, 4GB ram, proc. I3 ) e abri o monitor de sistema pra acompanhar o
uso de memória em Lua 5.2.1 em comparação a Python 3.3.1, e obtive os seguintes resultados.

> Abrir o interpretador:
>> Consumo em Lua: 208 k
>> Consumo de Memória em Python: 2.2 MB

> criar uma lista com 100.000 elementos do tipo numérico
>> Consumo em Lua: 1.4 MB
>> Consumo de Memória em Python: 4.2 MB

> criar uma lista com 1.000.000 elementos do tipo numérico
>> Consumo em Lua: 9.4 MB
>> Consumo de Memória em Python: 21.4 MB 

> criar uma lista com 2.000.000 elementos do tipo numérico
>> Consumo em Lua: 25.4 MB
>> Consumo de Memória em Python: 40.8 MB

> criar uma lista com 5.000.000 elementos do tipo numérico
>> Consumo em Lua: 80.4 MB
>> Consumo de Memória em Python: 98.7 MB

> criar uma lista com 10.000.000 elementos do tipo numérico
>> Consumo em Lua:  208 MB
>> Consumo de Memória em Python: 194.6 MB

a partir desse ponto, lua consome mais memória.
Observação a cada vez que troco o numero de elementos eu uso sempre a mesma variavel ou seja
x = 100000
x = 1000000
x = 2000000
x = 5000000
x = 10000000

tanto pra Python quanto pra Lua

Agora vem a dúvida, quando eu faço em Python x = None (o que corresponde ao NIL no Lua)
acontece isso

Atribuir None a variavel x em Python, Memória: 2.3 MB 

Atribuir nil a variavel x em Lua, Memória: 204.8 MB

em Lua a memória não está sendo desalocada, e caso eu vá usando Lua a memória só vai aumentando

Como contornar isso? o coletor de lixo não deveria gerenciar, ou quando atribui-se algum valor a variavel x a memória não deveria desalocar?


Obrigado.

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
Thalles Robson

Grandes líderes inspiram a grandeza em outras pessoas (Starwars)

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

Jhonathan Paulo Banczek
In reply to this post by Michel Braz de Morais
Boa noite, foi um teste bem simples.... porem, não consegui entender o motivo dessa memória não baixar. Pela lógica, como Lua é tipagem dinamica, no momento que atribui nil a variavel, automaticamente essa variavel deve ser desse "tipo", ou seja, a memoria usada deve ser desalocada... E pra piorar eu continuei usando o interpretador durante uns 15 minutos e a memoria nao baixava, só tendia a aumentar.

Outra coisa, quando se abre o terminal linux e digita: lua, abre o interpretador Lua, e inicia um processo chamado "lua" nos processos do linux, quando se mata o interpretador (control+c ou z)
o processo continua existindo e acumulando.. olhem em anexo o print.



Em segunda-feira, 9 de setembro de 2013 18h33min02s UTC-3, Michel Morais escreveu:
Olha amigo ... não sei a resposta pois sou novo aqui e no Lua mas achei sensacional seu teste .....
Muito bom :)



att,

Michel Braz de Morais

Analista / Desenvolvedor de sistemas


Em 9 de setembro de 2013 13:48, Jhonathan Paulo Banczek <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="rS9C-GiW8csJ">jpba...@...> escreveu:
Estou usando Linux/Ubuntu (13.04, 32bit, 4GB ram, proc. I3 ) e abri o monitor de sistema pra acompanhar o
uso de memória em Lua 5.2.1 em comparação a Python 3.3.1, e obtive os seguintes resultados.

> Abrir o interpretador:
>> Consumo em Lua: 208 k
>> Consumo de Memória em Python: 2.2 MB

> criar uma lista com 100.000 elementos do tipo numérico
>> Consumo em Lua: 1.4 MB
>> Consumo de Memória em Python: 4.2 MB

> criar uma lista com 1.000.000 elementos do tipo numérico
>> Consumo em Lua: 9.4 MB
>> Consumo de Memória em Python: 21.4 MB 

> criar uma lista com 2.000.000 elementos do tipo numérico
>> Consumo em Lua: 25.4 MB
>> Consumo de Memória em Python: 40.8 MB

> criar uma lista com 5.000.000 elementos do tipo numérico
>> Consumo em Lua: 80.4 MB
>> Consumo de Memória em Python: 98.7 MB

> criar uma lista com 10.000.000 elementos do tipo numérico
>> Consumo em Lua:  208 MB
>> Consumo de Memória em Python: 194.6 MB

a partir desse ponto, lua consome mais memória.
Observação a cada vez que troco o numero de elementos eu uso sempre a mesma variavel ou seja
x = 100000
x = 1000000
x = 2000000
x = 5000000
x = 10000000

tanto pra Python quanto pra Lua

Agora vem a dúvida, quando eu faço em Python x = None (o que corresponde ao NIL no Lua)
acontece isso

Atribuir None a variavel x em Python, Memória: 2.3 MB 

Atribuir nil a variavel x em Lua, Memória: 204.8 MB

em Lua a memória não está sendo desalocada, e caso eu vá usando Lua a memória só vai aumentando

Como contornar isso? o coletor de lixo não deveria gerenciar, ou quando atribui-se algum valor a variavel x a memória não deveria desalocar?


Obrigado.

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para <a href="javascript:" target="_blank" gdf-obfuscated-mailto="rS9C-GiW8csJ">lua-br+un...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

Elias Barrionovo
2013/9/9 Jhonathan Paulo Banczek <[hidden email]>
> no momento que atribui nil a variavel, automaticamente essa variavel deve ser desse "tipo", ou seja, a memoria usada deve ser desalocada... E pra piorar eu continuei usando o interpretador durante uns 15 minutos e a memoria nao baixava, só tendia a aumentar.

Depende de coisas como escopo, uso de memória, referências etc. Pra
ser sincero, não conheço o funcionamento do gc, mas sei que não é
imediatamente. Talvez alguém com mais conhecimento das entranhas possa
de explicar melhor.


> Outra coisa, quando se abre o terminal linux e digita: lua, abre o interpretador Lua, e inicia um processo chamado "lua" nos processos do linux, quando se mata o interpretador (control+c ou z)
> o processo continua existindo e acumulando.. olhem em anexo o print.


Ctrl+z não mata processo no Linux, só para ele. Você pode voltá-lo à
ativa usando o comando fg (foreground) ou bg (background). Já ctrl-c
mata, sim, o processo. Se não matar seu sistema está com problemas...



--
NI!

() - www.asciiribbon.org
/\ - ascii ribbon campaign against html e-mail and proprietary attachments

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

Jhonathan Paulo Banczek
puts, verdade... control+z não mata o processo, tinha visto errado! bom então esse "problema" do varios processos tá resolvido, o control + c mata o processo, o control z não. Tanto python e Lua tá ok nessa parte. Agora fica só essa questão da Memória que achei bizarra... 


Em 9 de setembro de 2013 21:17, Elias Barrionovo <[hidden email]> escreveu:
2013/9/9 Jhonathan Paulo Banczek <[hidden email]>
> no momento que atribui nil a variavel, automaticamente essa variavel deve ser desse "tipo", ou seja, a memoria usada deve ser desalocada... E pra piorar eu continuei usando o interpretador durante uns 15 minutos e a memoria nao baixava, só tendia a aumentar.

Depende de coisas como escopo, uso de memória, referências etc. Pra
ser sincero, não conheço o funcionamento do gc, mas sei que não é
imediatamente. Talvez alguém com mais conhecimento das entranhas possa
de explicar melhor.


> Outra coisa, quando se abre o terminal linux e digita: lua, abre o interpretador Lua, e inicia um processo chamado "lua" nos processos do linux, quando se mata o interpretador (control+c ou z)
> o processo continua existindo e acumulando.. olhem em anexo o print.


Ctrl+z não mata processo no Linux, só para ele. Você pode voltá-lo à
ativa usando o comando fg (foreground) ou bg (background). Já ctrl-c
mata, sim, o processo. Se não matar seu sistema está com problemas...



--
NI!

() - www.asciiribbon.org
/\ - ascii ribbon campaign against html e-mail and proprietary attachments

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
________________________________________

Atenciosamente
Jhonathan Paulo Banczek

___________________________________

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

Rodrigo Sanguanini


Em 9 de setembro de 2013 21:22, Jhonathan Banczek <[hidden email]> escreveu:
puts, verdade... control+z não mata o processo, tinha visto errado! bom então esse "problema" do varios processos tá resolvido, o control + c mata o processo, o control z não. Tanto python e Lua tá ok nessa parte. Agora fica só essa questão da Memória que achei bizarra... 


Em 9 de setembro de 2013 21:17, Elias Barrionovo <[hidden email]> escreveu:

2013/9/9 Jhonathan Paulo Banczek <[hidden email]>
> no momento que atribui nil a variavel, automaticamente essa variavel deve ser desse "tipo", ou seja, a memoria usada deve ser desalocada... E pra piorar eu continuei usando o interpretador durante uns 15 minutos e a memoria nao baixava, só tendia a aumentar.

Depende de coisas como escopo, uso de memória, referências etc. Pra
ser sincero, não conheço o funcionamento do gc, mas sei que não é
imediatamente. Talvez alguém com mais conhecimento das entranhas possa
de explicar melhor.


> Outra coisa, quando se abre o terminal linux e digita: lua, abre o interpretador Lua, e inicia um processo chamado "lua" nos processos do linux, quando se mata o interpretador (control+c ou z)
> o processo continua existindo e acumulando.. olhem em anexo o print.


Ctrl+z não mata processo no Linux, só para ele. Você pode voltá-lo à
ativa usando o comando fg (foreground) ou bg (background). Já ctrl-c
mata, sim, o processo. Se não matar seu sistema está com problemas...



--
NI!

() - www.asciiribbon.org
/\ - ascii ribbon campaign against html e-mail and proprietary attachments

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
________________________________________

Atenciosamente
Jhonathan Paulo Banczek

___________________________________

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
Att, Rodrigo Sanguanini (aka Killer Skull)
www.killerskull.com

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

Augusto Rodrigues
In reply to this post by Jhonathan Paulo Banczek
Em relação a atribuição de NIL a variável do Lua, realmente o gc não age de forma instantânea. Entretanto, você pode forçar a coleta no Lua após a finalização do teste e verificar o consumo de memória. 

Eu recomendo verificar se o escopo da variável X é global ou local. Se for global, acredito que o gc pode não liberar a memória atribuída a esta variável. Agora se for local e no final da execução do teste vc chamar o gc, pode ser que ocorra liberação da memória previamente alocada.

Em relação a atribuição de números para as variáveis do Lua, será que o aumento de consumo de memória não foi porque o Lua deve ter utilizado outras estruturas de dados para armazenar o número na variavel X ? 

Ah.. gostei do teste. Valeu por postar e abrir uma discussão sobre isso.



Em 9 de setembro de 2013 21:22, Jhonathan Banczek <[hidden email]> escreveu:
puts, verdade... control+z não mata o processo, tinha visto errado! bom então esse "problema" do varios processos tá resolvido, o control + c mata o processo, o control z não. Tanto python e Lua tá ok nessa parte. Agora fica só essa questão da Memória que achei bizarra... 


Em 9 de setembro de 2013 21:17, Elias Barrionovo <[hidden email]> escreveu:

2013/9/9 Jhonathan Paulo Banczek <[hidden email]>
> no momento que atribui nil a variavel, automaticamente essa variavel deve ser desse "tipo", ou seja, a memoria usada deve ser desalocada... E pra piorar eu continuei usando o interpretador durante uns 15 minutos e a memoria nao baixava, só tendia a aumentar.

Depende de coisas como escopo, uso de memória, referências etc. Pra
ser sincero, não conheço o funcionamento do gc, mas sei que não é
imediatamente. Talvez alguém com mais conhecimento das entranhas possa
de explicar melhor.


> Outra coisa, quando se abre o terminal linux e digita: lua, abre o interpretador Lua, e inicia um processo chamado "lua" nos processos do linux, quando se mata o interpretador (control+c ou z)
> o processo continua existindo e acumulando.. olhem em anexo o print.


Ctrl+z não mata processo no Linux, só para ele. Você pode voltá-lo à
ativa usando o comando fg (foreground) ou bg (background). Já ctrl-c
mata, sim, o processo. Se não matar seu sistema está com problemas...



--
NI!

() - www.asciiribbon.org
/\ - ascii ribbon campaign against html e-mail and proprietary attachments

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
________________________________________

Atenciosamente
Jhonathan Paulo Banczek

___________________________________

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

Rodrigo Sanguanini
Guto, global ou local, atribuindo-se nil (null) à variável

Usually, you do not need to delete global variables; if your variable is going
to have a short life, you should use a local variable. But, if you need to delete a
global variable, just assign nil to it (Pg 25 PiL 2º Edition)




Em 10 de setembro de 2013 09:57, Guto Rodrigues <[hidden email]> escreveu:
Em relação a atribuição de NIL a variável do Lua, realmente o gc não age de forma instantânea. Entretanto, você pode forçar a coleta no Lua após a finalização do teste e verificar o consumo de memória. 

Eu recomendo verificar se o escopo da variável X é global ou local. Se for global, acredito que o gc pode não liberar a memória atribuída a esta variável. Agora se for local e no final da execução do teste vc chamar o gc, pode ser que ocorra liberação da memória previamente alocada.

Em relação a atribuição de números para as variáveis do Lua, será que o aumento de consumo de memória não foi porque o Lua deve ter utilizado outras estruturas de dados para armazenar o número na variavel X ? 

Ah.. gostei do teste. Valeu por postar e abrir uma discussão sobre isso.



Em 9 de setembro de 2013 21:22, Jhonathan Banczek <[hidden email]> escreveu:
puts, verdade... control+z não mata o processo, tinha visto errado! bom então esse "problema" do varios processos tá resolvido, o control + c mata o processo, o control z não. Tanto python e Lua tá ok nessa parte. Agora fica só essa questão da Memória que achei bizarra... 


Em 9 de setembro de 2013 21:17, Elias Barrionovo <[hidden email]> escreveu:

2013/9/9 Jhonathan Paulo Banczek <[hidden email]>
> no momento que atribui nil a variavel, automaticamente essa variavel deve ser desse "tipo", ou seja, a memoria usada deve ser desalocada... E pra piorar eu continuei usando o interpretador durante uns 15 minutos e a memoria nao baixava, só tendia a aumentar.

Depende de coisas como escopo, uso de memória, referências etc. Pra
ser sincero, não conheço o funcionamento do gc, mas sei que não é
imediatamente. Talvez alguém com mais conhecimento das entranhas possa
de explicar melhor.


> Outra coisa, quando se abre o terminal linux e digita: lua, abre o interpretador Lua, e inicia um processo chamado "lua" nos processos do linux, quando se mata o interpretador (control+c ou z)
> o processo continua existindo e acumulando.. olhem em anexo o print.


Ctrl+z não mata processo no Linux, só para ele. Você pode voltá-lo à
ativa usando o comando fg (foreground) ou bg (background). Já ctrl-c
mata, sim, o processo. Se não matar seu sistema está com problemas...



--
NI!

() - www.asciiribbon.org
/\ - ascii ribbon campaign against html e-mail and proprietary attachments

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
________________________________________

Atenciosamente
Jhonathan Paulo Banczek

___________________________________

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
Att, Rodrigo Sanguanini (aka Killer Skull)
www.killerskull.com

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

Rodrigo Sanguanini
Ops, faltou ali: 
Atribuindo-se nil à variável, ela deveria ser "deletada" a memória.


Em 10 de setembro de 2013 12:04, Rodrigo Sanguanini <[hidden email]> escreveu:
Guto, global ou local, atribuindo-se nil (null) à variável

Usually, you do not need to delete global variables; if your variable is going
to have a short life, you should use a local variable. But, if you need to delete a
global variable, just assign nil to it (Pg 25 PiL 2º Edition)




Em 10 de setembro de 2013 09:57, Guto Rodrigues <[hidden email]> escreveu:

Em relação a atribuição de NIL a variável do Lua, realmente o gc não age de forma instantânea. Entretanto, você pode forçar a coleta no Lua após a finalização do teste e verificar o consumo de memória. 

Eu recomendo verificar se o escopo da variável X é global ou local. Se for global, acredito que o gc pode não liberar a memória atribuída a esta variável. Agora se for local e no final da execução do teste vc chamar o gc, pode ser que ocorra liberação da memória previamente alocada.

Em relação a atribuição de números para as variáveis do Lua, será que o aumento de consumo de memória não foi porque o Lua deve ter utilizado outras estruturas de dados para armazenar o número na variavel X ? 

Ah.. gostei do teste. Valeu por postar e abrir uma discussão sobre isso.



Em 9 de setembro de 2013 21:22, Jhonathan Banczek <[hidden email]> escreveu:
puts, verdade... control+z não mata o processo, tinha visto errado! bom então esse "problema" do varios processos tá resolvido, o control + c mata o processo, o control z não. Tanto python e Lua tá ok nessa parte. Agora fica só essa questão da Memória que achei bizarra... 


Em 9 de setembro de 2013 21:17, Elias Barrionovo <[hidden email]> escreveu:

2013/9/9 Jhonathan Paulo Banczek <[hidden email]>
> no momento que atribui nil a variavel, automaticamente essa variavel deve ser desse "tipo", ou seja, a memoria usada deve ser desalocada... E pra piorar eu continuei usando o interpretador durante uns 15 minutos e a memoria nao baixava, só tendia a aumentar.

Depende de coisas como escopo, uso de memória, referências etc. Pra
ser sincero, não conheço o funcionamento do gc, mas sei que não é
imediatamente. Talvez alguém com mais conhecimento das entranhas possa
de explicar melhor.


> Outra coisa, quando se abre o terminal linux e digita: lua, abre o interpretador Lua, e inicia um processo chamado "lua" nos processos do linux, quando se mata o interpretador (control+c ou z)
> o processo continua existindo e acumulando.. olhem em anexo o print.


Ctrl+z não mata processo no Linux, só para ele. Você pode voltá-lo à
ativa usando o comando fg (foreground) ou bg (background). Já ctrl-c
mata, sim, o processo. Se não matar seu sistema está com problemas...



--
NI!

() - www.asciiribbon.org
/\ - ascii ribbon campaign against html e-mail and proprietary attachments

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
________________________________________

Atenciosamente
Jhonathan Paulo Banczek

___________________________________

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
Att, Rodrigo Sanguanini (aka Killer Skull)
www.killerskull.com



--
Att, Rodrigo Sanguanini (aka Killer Skull)
www.killerskull.com

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

Rodrigo Sanguanini
Amigo Jhonathan. 
Hoje fiz uns testes. Execute forçadamente a função collectgarbage()
Abraço


Em 10 de setembro de 2013 12:04, Rodrigo Sanguanini <[hidden email]> escreveu:
Ops, faltou ali: 
Atribuindo-se nil à variável, ela deveria ser "deletada" a memória.


Em 10 de setembro de 2013 12:04, Rodrigo Sanguanini <[hidden email]> escreveu:

Guto, global ou local, atribuindo-se nil (null) à variável

Usually, you do not need to delete global variables; if your variable is going
to have a short life, you should use a local variable. But, if you need to delete a
global variable, just assign nil to it (Pg 25 PiL 2º Edition)




Em 10 de setembro de 2013 09:57, Guto Rodrigues <[hidden email]> escreveu:

Em relação a atribuição de NIL a variável do Lua, realmente o gc não age de forma instantânea. Entretanto, você pode forçar a coleta no Lua após a finalização do teste e verificar o consumo de memória. 

Eu recomendo verificar se o escopo da variável X é global ou local. Se for global, acredito que o gc pode não liberar a memória atribuída a esta variável. Agora se for local e no final da execução do teste vc chamar o gc, pode ser que ocorra liberação da memória previamente alocada.

Em relação a atribuição de números para as variáveis do Lua, será que o aumento de consumo de memória não foi porque o Lua deve ter utilizado outras estruturas de dados para armazenar o número na variavel X ? 

Ah.. gostei do teste. Valeu por postar e abrir uma discussão sobre isso.



Em 9 de setembro de 2013 21:22, Jhonathan Banczek <[hidden email]> escreveu:
puts, verdade... control+z não mata o processo, tinha visto errado! bom então esse "problema" do varios processos tá resolvido, o control + c mata o processo, o control z não. Tanto python e Lua tá ok nessa parte. Agora fica só essa questão da Memória que achei bizarra... 


Em 9 de setembro de 2013 21:17, Elias Barrionovo <[hidden email]> escreveu:

2013/9/9 Jhonathan Paulo Banczek <[hidden email]>
> no momento que atribui nil a variavel, automaticamente essa variavel deve ser desse "tipo", ou seja, a memoria usada deve ser desalocada... E pra piorar eu continuei usando o interpretador durante uns 15 minutos e a memoria nao baixava, só tendia a aumentar.

Depende de coisas como escopo, uso de memória, referências etc. Pra
ser sincero, não conheço o funcionamento do gc, mas sei que não é
imediatamente. Talvez alguém com mais conhecimento das entranhas possa
de explicar melhor.


> Outra coisa, quando se abre o terminal linux e digita: lua, abre o interpretador Lua, e inicia um processo chamado "lua" nos processos do linux, quando se mata o interpretador (control+c ou z)
> o processo continua existindo e acumulando.. olhem em anexo o print.


Ctrl+z não mata processo no Linux, só para ele. Você pode voltá-lo à
ativa usando o comando fg (foreground) ou bg (background). Já ctrl-c
mata, sim, o processo. Se não matar seu sistema está com problemas...



--
NI!

() - www.asciiribbon.org
/\ - ascii ribbon campaign against html e-mail and proprietary attachments

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
________________________________________

Atenciosamente
Jhonathan Paulo Banczek

___________________________________

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
Att, Rodrigo Sanguanini (aka Killer Skull)
www.killerskull.com



--
Att, Rodrigo Sanguanini (aka Killer Skull)
www.killerskull.com



--
Att, Rodrigo Sanguanini (aka Killer Skull)
www.killerskull.com

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

Jhonathan Paulo Banczek
In reply to this post by Augusto Rodrigues
Olá, em questão da estrutura usada foi em "for" mesmo, criei uma tabela e inseri nela os elementos. Usei tbm uma funçao pra fazer isso... O problema é que a memória não ia desalocando enquanto ia usando o programa e até re usando a variavel. Imagina, x = { [insira aqui 1 milhão de numeros] }, a memória sobre, dai vc já usou esse x, e faz x = nil, ou x = "qualquer coisa"... a memória que foi usada não é desalocada. 
 
 
m terça-feira, 10 de setembro de 2013 09h57min30s UTC-3, Augusto Rodrigues escreveu:
Em relação a atribuição de NIL a variável do Lua, realmente o gc não age de forma instantânea. Entretanto, você pode forçar a coleta no Lua após a finalização do teste e verificar o consumo de memória. 

Eu recomendo verificar se o escopo da variável X é global ou local. Se for global, acredito que o gc pode não liberar a memória atribuída a esta variável. Agora se for local e no final da execução do teste vc chamar o gc, pode ser que ocorra liberação da memória previamente alocada.

Em relação a atribuição de números para as variáveis do Lua, será que o aumento de consumo de memória não foi porque o Lua deve ter utilizado outras estruturas de dados para armazenar o número na variavel X ? 

Ah.. gostei do teste. Valeu por postar e abrir uma discussão sobre isso.



Em 9 de setembro de 2013 21:22, Jhonathan Banczek <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="ARM6I5txVa8J">jpba...@...> escreveu:
puts, verdade... control+z não mata o processo, tinha visto errado! bom então esse "problema" do varios processos tá resolvido, o control + c mata o processo, o control z não. Tanto python e Lua tá ok nessa parte. Agora fica só essa questão da Memória que achei bizarra... 


Em 9 de setembro de 2013 21:17, Elias Barrionovo <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="ARM6I5txVa8J">elias....@...> escreveu:

2013/9/9 Jhonathan Paulo Banczek <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="ARM6I5txVa8J">jpba...@...>
> no momento que atribui nil a variavel, automaticamente essa variavel deve ser desse "tipo", ou seja, a memoria usada deve ser desalocada... E pra piorar eu continuei usando o interpretador durante uns 15 minutos e a memoria nao baixava, só tendia a aumentar.

Depende de coisas como escopo, uso de memória, referências etc. Pra
ser sincero, não conheço o funcionamento do gc, mas sei que não é
imediatamente. Talvez alguém com mais conhecimento das entranhas possa
de explicar melhor.


> Outra coisa, quando se abre o terminal linux e digita: lua, abre o interpretador Lua, e inicia um processo chamado "lua" nos processos do linux, quando se mata o interpretador (control+c ou z)
> o processo continua existindo e acumulando.. olhem em anexo o print.


Ctrl+z não mata processo no Linux, só para ele. Você pode voltá-lo à
ativa usando o comando fg (foreground) ou bg (background). Já ctrl-c
mata, sim, o processo. Se não matar seu sistema está com problemas...



--
NI!

() - www.asciiribbon.org
/\ - ascii ribbon campaign against html e-mail and proprietary attachments

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para <a href="javascript:" target="_blank" gdf-obfuscated-mailto="ARM6I5txVa8J">lua-br+un...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
________________________________________

Atenciosamente
Jhonathan Paulo Banczek

___________________________________

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para <a href="javascript:" target="_blank" gdf-obfuscated-mailto="ARM6I5txVa8J">lua-br+un...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

Jhonathan Paulo Banczek
In reply to this post by Rodrigo Sanguanini
Olá,

Essa função para desalocar a memória manualmente collectgarbage() funcionou perfeitamente. Esse comando resolveu o meu problema com a memória. Sensacional.

Só a dúvida que fica é: o gerenciador não deveria fazer isso? 

Caso faça um algoritmo que manipule tabelas IMENSAS e explicitamente não chame o collectgarbage(), seu programa virou um DEVORADOR de RAM. Achei meio preocupante, pq quando vc usa uma linguagem que gerencia a coleta de lixo , normanente nem para pra olhar se a memória está sendo devidamente desalocada,

Abs.


Em terça-feira, 10 de setembro de 2013 14h00min15s UTC-3, Killer escreveu:
Amigo Jhonathan. 
Hoje fiz uns testes. Execute forçadamente a função collectgarbage()
Abraço


Em 10 de setembro de 2013 12:04, Rodrigo Sanguanini <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="IfqioOlR71wJ">rodrig...@...> escreveu:
Ops, faltou ali: 
Atribuindo-se nil à variável, ela deveria ser "deletada" a memória.


Em 10 de setembro de 2013 12:04, Rodrigo Sanguanini <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="IfqioOlR71wJ">rodrig...@...> escreveu:

Guto, global ou local, atribuindo-se nil (null) à variável

Usually, you do not need to delete global variables; if your variable is going
to have a short life, you should use a local variable. But, if you need to delete a
global variable, just assign nil to it (Pg 25 PiL 2º Edition)




Em 10 de setembro de 2013 09:57, Guto Rodrigues <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="IfqioOlR71wJ">guto.rodr...@...> escreveu:

Em relação a atribuição de NIL a variável do Lua, realmente o gc não age de forma instantânea. Entretanto, você pode forçar a coleta no Lua após a finalização do teste e verificar o consumo de memória. 

Eu recomendo verificar se o escopo da variável X é global ou local. Se for global, acredito que o gc pode não liberar a memória atribuída a esta variável. Agora se for local e no final da execução do teste vc chamar o gc, pode ser que ocorra liberação da memória previamente alocada.

Em relação a atribuição de números para as variáveis do Lua, será que o aumento de consumo de memória não foi porque o Lua deve ter utilizado outras estruturas de dados para armazenar o número na variavel X ? 

Ah.. gostei do teste. Valeu por postar e abrir uma discussão sobre isso.



Em 9 de setembro de 2013 21:22, Jhonathan Banczek <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="IfqioOlR71wJ">jpba...@...> escreveu:
puts, verdade... control+z não mata o processo, tinha visto errado! bom então esse "problema" do varios processos tá resolvido, o control + c mata o processo, o control z não. Tanto python e Lua tá ok nessa parte. Agora fica só essa questão da Memória que achei bizarra... 


Em 9 de setembro de 2013 21:17, Elias Barrionovo <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="IfqioOlR71wJ">elias....@...> escreveu:

2013/9/9 Jhonathan Paulo Banczek <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="IfqioOlR71wJ">jpba...@...>
> no momento que atribui nil a variavel, automaticamente essa variavel deve ser desse "tipo", ou seja, a memoria usada deve ser desalocada... E pra piorar eu continuei usando o interpretador durante uns 15 minutos e a memoria nao baixava, só tendia a aumentar.

Depende de coisas como escopo, uso de memória, referências etc. Pra
ser sincero, não conheço o funcionamento do gc, mas sei que não é
imediatamente. Talvez alguém com mais conhecimento das entranhas possa
de explicar melhor.


> Outra coisa, quando se abre o terminal linux e digita: lua, abre o interpretador Lua, e inicia um processo chamado "lua" nos processos do linux, quando se mata o interpretador (control+c ou z)
> o processo continua existindo e acumulando.. olhem em anexo o print.


Ctrl+z não mata processo no Linux, só para ele. Você pode voltá-lo à
ativa usando o comando fg (foreground) ou bg (background). Já ctrl-c
mata, sim, o processo. Se não matar seu sistema está com problemas...



--
NI!

() - www.asciiribbon.org
/\ - ascii ribbon campaign against html e-mail and proprietary attachments

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para <a href="javascript:" target="_blank" gdf-obfuscated-mailto="IfqioOlR71wJ">lua-br+un...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
________________________________________

Atenciosamente
Jhonathan Paulo Banczek

___________________________________

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para <a href="javascript:" target="_blank" gdf-obfuscated-mailto="IfqioOlR71wJ">lua-br+un...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para <a href="javascript:" target="_blank" gdf-obfuscated-mailto="IfqioOlR71wJ">lua-br+un...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
Att, Rodrigo Sanguanini (aka Killer Skull)
www.killerskull.com



--
Att, Rodrigo Sanguanini (aka Killer Skull)
www.killerskull.com



--
Att, Rodrigo Sanguanini (aka Killer Skull)
www.killerskull.com

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

Elias Barrionovo
O gc coleta, sim [1]. A agressividade dele, no entanto, é um detalhe
de implementação que pode ser configurado tanto em tempo de compilação
quanto execução [2].

[1]
local function hugetable()
    local t = {}
    for i = 1, 10e6 do
        t[i] = true
    end
    print(collectgarbage('count'))
end

while true do
    print(collectgarbage('count'))
    hugetable()
    print(collectgarbage('count'))
end

[2] http://www.lua.org/manual/5.2/manual.html#2.5

2013/9/10 Jhonathan Paulo Banczek <[hidden email]>:

> Olá,
>
> Essa função para desalocar a memória manualmente collectgarbage() funcionou
> perfeitamente. Esse comando resolveu o meu problema com a memória.
> Sensacional.
>
> Só a dúvida que fica é: o gerenciador não deveria fazer isso?
>
> Caso faça um algoritmo que manipule tabelas IMENSAS e explicitamente não
> chame o collectgarbage(), seu programa virou um DEVORADOR de RAM. Achei meio
> preocupante, pq quando vc usa uma linguagem que gerencia a coleta de lixo ,
> normanente nem para pra olhar se a memória está sendo devidamente
> desalocada,
>
> Abs.
>
>
> Em terça-feira, 10 de setembro de 2013 14h00min15s UTC-3, Killer escreveu:
>>
>> Amigo Jhonathan.
>> Hoje fiz uns testes. Execute forçadamente a função collectgarbage()
>> Abraço
>>
>>
>> Em 10 de setembro de 2013 12:04, Rodrigo Sanguanini <[hidden email]>
>> escreveu:
>>>
>>> Ops, faltou ali:
>>> Atribuindo-se nil à variável, ela deveria ser "deletada" a memória.
>>>
>>>
>>> Em 10 de setembro de 2013 12:04, Rodrigo Sanguanini <[hidden email]>
>>> escreveu:
>>>
>>>> Guto, global ou local, atribuindo-se nil (null) à variável
>>>>
>>>>>> Usually, you do not need to delete global variables; if your variable
>>>>>> is going
>>>>>>
>>>>>> to have a short life, you should use a local variable. But, if you
>>>>>> need to delete a
>>>>>>
>>>>>> global variable, just assign nil to it (Pg 25 PiL 2º Edition)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Em 10 de setembro de 2013 09:57, Guto Rodrigues <[hidden email]>
>>>> escreveu:
>>>>
>>>>> Em relação a atribuição de NIL a variável do Lua, realmente o gc não
>>>>> age de forma instantânea. Entretanto, você pode forçar a coleta no Lua após
>>>>> a finalização do teste e verificar o consumo de memória.
>>>>>
>>>>> Eu recomendo verificar se o escopo da variável X é global ou local. Se
>>>>> for global, acredito que o gc pode não liberar a memória atribuída a esta
>>>>> variável. Agora se for local e no final da execução do teste vc chamar o gc,
>>>>> pode ser que ocorra liberação da memória previamente alocada.
>>>>>
>>>>> Em relação a atribuição de números para as variáveis do Lua, será que o
>>>>> aumento de consumo de memória não foi porque o Lua deve ter utilizado outras
>>>>> estruturas de dados para armazenar o número na variavel X ?
>>>>>
>>>>> Ah.. gostei do teste. Valeu por postar e abrir uma discussão sobre
>>>>> isso.
>>>>>
>>>>>
>>>>>
>>>>> Em 9 de setembro de 2013 21:22, Jhonathan Banczek <[hidden email]>
>>>>> escreveu:
>>>>>>
>>>>>> puts, verdade... control+z não mata o processo, tinha visto errado!
>>>>>> bom então esse "problema" do varios processos tá resolvido, o control + c
>>>>>> mata o processo, o control z não. Tanto python e Lua tá ok nessa parte.
>>>>>> Agora fica só essa questão da Memória que achei bizarra...
>>>>>>
>>>>>>
>>>>>> Em 9 de setembro de 2013 21:17, Elias Barrionovo <[hidden email]>
>>>>>> escreveu:
>>>>>>
>>>>>>> 2013/9/9 Jhonathan Paulo Banczek <[hidden email]>
>>>>>>> > no momento que atribui nil a variavel, automaticamente essa
>>>>>>> > variavel deve ser desse "tipo", ou seja, a memoria usada deve ser
>>>>>>> > desalocada... E pra piorar eu continuei usando o interpretador durante uns
>>>>>>> > 15 minutos e a memoria nao baixava, só tendia a aumentar.
>>>>>>>
>>>>>>> Depende de coisas como escopo, uso de memória, referências etc. Pra
>>>>>>> ser sincero, não conheço o funcionamento do gc, mas sei que não é
>>>>>>> imediatamente. Talvez alguém com mais conhecimento das entranhas
>>>>>>> possa
>>>>>>> de explicar melhor.
>>>>>>>
>>>>>>>
>>>>>>> > Outra coisa, quando se abre o terminal linux e digita: lua, abre o
>>>>>>> > interpretador Lua, e inicia um processo chamado "lua" nos processos do
>>>>>>> > linux, quando se mata o interpretador (control+c ou z)
>>>>>>> > o processo continua existindo e acumulando.. olhem em anexo o
>>>>>>> > print.
>>>>>>>
>>>>>>>
>>>>>>> Ctrl+z não mata processo no Linux, só para ele. Você pode voltá-lo à
>>>>>>> ativa usando o comando fg (foreground) ou bg (background). Já ctrl-c
>>>>>>> mata, sim, o processo. Se não matar seu sistema está com problemas...
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> NI!
>>>>>>>
>>>>>>> () - www.asciiribbon.org
>>>>>>> /\ - ascii ribbon campaign against html e-mail and proprietary
>>>>>>> attachments
>>>>>>>
>>>>>>> --
>>>>>>> Lua BR - http://groups.google.com/group/lua-br
>>>>>>> ---
>>>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Lua
>>>>>>> BR" dos Grupos do Google.
>>>>>>> Para cancelar a inscrição neste grupo e parar de receber seus
>>>>>>> e-mails, envie um e-mail para [hidden email].
>>>>>>> Para obter mais opções, acesse
>>>>>>> https://groups.google.com/groups/opt_out.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> ________________________________________
>>>>>>
>>>>>> Atenciosamente
>>>>>> Jhonathan Paulo Banczek
>>>>>>
>>>>>> ___________________________________
>>>>>>
>>>>>> --
>>>>>> Lua BR - http://groups.google.com/group/lua-br
>>>>>> ---
>>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Lua
>>>>>> BR" dos Grupos do Google.
>>>>>> Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
>>>>>> envie um e-mail para [hidden email].
>>>>>> Para obter mais opções, acesse
>>>>>> https://groups.google.com/groups/opt_out.
>>>>>
>>>>>
>>>>> --
>>>>> Lua BR - http://groups.google.com/group/lua-br
>>>>> ---
>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR"
>>>>> dos Grupos do Google.
>>>>> Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
>>>>> envie um e-mail para [hidden email].
>>>>> Para obter mais opções, acesse
>>>>> https://groups.google.com/groups/opt_out.
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Att, Rodrigo Sanguanini (aka Killer Skull)
>>>> www.killerskull.com
>>>
>>>
>>>
>>>
>>> --
>>> Att, Rodrigo Sanguanini (aka Killer Skull)
>>> www.killerskull.com
>>
>>
>>
>>
>> --
>> Att, Rodrigo Sanguanini (aka Killer Skull)
>> www.killerskull.com
>
> --
> Lua BR - http://groups.google.com/group/lua-br
> ---
> Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos
> Grupos do Google.
> Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie
> um e-mail para [hidden email].
> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
NI!

() - www.asciiribbon.org
/\ - ascii ribbon campaign against html e-mail and proprietary attachments

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

Rodrigo Sanguanini
Não sei, conheço Lua faz poucos meses. Talvez porque eu e você tenhamos muita RAM livre e o collectgarbage é acionado em um determinado tempo ou quando a memória está baixa.
Deve ter uma regra para isto.

Tenho certeza absoluta que você vai entender (como eu entendi) o funcionamento básico olhando o manual de referência (no site tem) 
É só procurar por "2.10 - Garbage Collection"
Existe uma versão CHM (cHTML, se não me engano) na interneutz.

Abraço


Em 10 de setembro de 2013 15:10, Elias Barrionovo <[hidden email]> escreveu:
O gc coleta, sim [1]. A agressividade dele, no entanto, é um detalhe
de implementação que pode ser configurado tanto em tempo de compilação
quanto execução [2].

[1]
local function hugetable()
    local t = {}
    for i = 1, 10e6 do
        t[i] = true
    end
    print(collectgarbage('count'))
end

while true do
    print(collectgarbage('count'))
    hugetable()
    print(collectgarbage('count'))
end

[2] http://www.lua.org/manual/5.2/manual.html#2.5

2013/9/10 Jhonathan Paulo Banczek <[hidden email]>:
> Olá,
>
> Essa função para desalocar a memória manualmente collectgarbage() funcionou
> perfeitamente. Esse comando resolveu o meu problema com a memória.
> Sensacional.
>
> Só a dúvida que fica é: o gerenciador não deveria fazer isso?
>
> Caso faça um algoritmo que manipule tabelas IMENSAS e explicitamente não
> chame o collectgarbage(), seu programa virou um DEVORADOR de RAM. Achei meio
> preocupante, pq quando vc usa uma linguagem que gerencia a coleta de lixo ,
> normanente nem para pra olhar se a memória está sendo devidamente
> desalocada,
>
> Abs.
>
>
> Em terça-feira, 10 de setembro de 2013 14h00min15s UTC-3, Killer escreveu:
>>
>> Amigo Jhonathan.
>> Hoje fiz uns testes. Execute forçadamente a função collectgarbage()
>> Abraço
>>
>>
>> Em 10 de setembro de 2013 12:04, Rodrigo Sanguanini <[hidden email]>
>> escreveu:
>>>
>>> Ops, faltou ali:
>>> Atribuindo-se nil à variável, ela deveria ser "deletada" a memória.
>>>
>>>
>>> Em 10 de setembro de 2013 12:04, Rodrigo Sanguanini <[hidden email]>
>>> escreveu:
>>>
>>>> Guto, global ou local, atribuindo-se nil (null) à variável
>>>>
>>>>>> Usually, you do not need to delete global variables; if your variable
>>>>>> is going
>>>>>>
>>>>>> to have a short life, you should use a local variable. But, if you
>>>>>> need to delete a
>>>>>>
>>>>>> global variable, just assign nil to it (Pg 25 PiL 2º Edition)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Em 10 de setembro de 2013 09:57, Guto Rodrigues <[hidden email]>
>>>> escreveu:
>>>>
>>>>> Em relação a atribuição de NIL a variável do Lua, realmente o gc não
>>>>> age de forma instantânea. Entretanto, você pode forçar a coleta no Lua após
>>>>> a finalização do teste e verificar o consumo de memória.
>>>>>
>>>>> Eu recomendo verificar se o escopo da variável X é global ou local. Se
>>>>> for global, acredito que o gc pode não liberar a memória atribuída a esta
>>>>> variável. Agora se for local e no final da execução do teste vc chamar o gc,
>>>>> pode ser que ocorra liberação da memória previamente alocada.
>>>>>
>>>>> Em relação a atribuição de números para as variáveis do Lua, será que o
>>>>> aumento de consumo de memória não foi porque o Lua deve ter utilizado outras
>>>>> estruturas de dados para armazenar o número na variavel X ?
>>>>>
>>>>> Ah.. gostei do teste. Valeu por postar e abrir uma discussão sobre
>>>>> isso.
>>>>>
>>>>>
>>>>>
>>>>> Em 9 de setembro de 2013 21:22, Jhonathan Banczek <[hidden email]>
>>>>> escreveu:
>>>>>>
>>>>>> puts, verdade... control+z não mata o processo, tinha visto errado!
>>>>>> bom então esse "problema" do varios processos tá resolvido, o control + c
>>>>>> mata o processo, o control z não. Tanto python e Lua tá ok nessa parte.
>>>>>> Agora fica só essa questão da Memória que achei bizarra...
>>>>>>
>>>>>>
>>>>>> Em 9 de setembro de 2013 21:17, Elias Barrionovo <[hidden email]>
>>>>>> escreveu:
>>>>>>
>>>>>>> 2013/9/9 Jhonathan Paulo Banczek <[hidden email]>
>>>>>>> > no momento que atribui nil a variavel, automaticamente essa
>>>>>>> > variavel deve ser desse "tipo", ou seja, a memoria usada deve ser
>>>>>>> > desalocada... E pra piorar eu continuei usando o interpretador durante uns
>>>>>>> > 15 minutos e a memoria nao baixava, só tendia a aumentar.
>>>>>>>
>>>>>>> Depende de coisas como escopo, uso de memória, referências etc. Pra
>>>>>>> ser sincero, não conheço o funcionamento do gc, mas sei que não é
>>>>>>> imediatamente. Talvez alguém com mais conhecimento das entranhas
>>>>>>> possa
>>>>>>> de explicar melhor.
>>>>>>>
>>>>>>>
>>>>>>> > Outra coisa, quando se abre o terminal linux e digita: lua, abre o
>>>>>>> > interpretador Lua, e inicia um processo chamado "lua" nos processos do
>>>>>>> > linux, quando se mata o interpretador (control+c ou z)
>>>>>>> > o processo continua existindo e acumulando.. olhem em anexo o
>>>>>>> > print.
>>>>>>>
>>>>>>>
>>>>>>> Ctrl+z não mata processo no Linux, só para ele. Você pode voltá-lo à
>>>>>>> ativa usando o comando fg (foreground) ou bg (background). Já ctrl-c
>>>>>>> mata, sim, o processo. Se não matar seu sistema está com problemas...
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> NI!
>>>>>>>
>>>>>>> () - www.asciiribbon.org
>>>>>>> /\ - ascii ribbon campaign against html e-mail and proprietary
>>>>>>> attachments
>>>>>>>
>>>>>>> --
>>>>>>> Lua BR - http://groups.google.com/group/lua-br
>>>>>>> ---
>>>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Lua
>>>>>>> BR" dos Grupos do Google.
>>>>>>> Para cancelar a inscrição neste grupo e parar de receber seus
>>>>>>> e-mails, envie um e-mail para [hidden email].
>>>>>>> Para obter mais opções, acesse
>>>>>>> https://groups.google.com/groups/opt_out.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> ________________________________________
>>>>>>
>>>>>> Atenciosamente
>>>>>> Jhonathan Paulo Banczek
>>>>>>
>>>>>> ___________________________________
>>>>>>
>>>>>> --
>>>>>> Lua BR - http://groups.google.com/group/lua-br
>>>>>> ---
>>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Lua
>>>>>> BR" dos Grupos do Google.
>>>>>> Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
>>>>>> envie um e-mail para [hidden email].
>>>>>> Para obter mais opções, acesse
>>>>>> https://groups.google.com/groups/opt_out.
>>>>>
>>>>>
>>>>> --
>>>>> Lua BR - http://groups.google.com/group/lua-br
>>>>> ---
>>>>> Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR"
>>>>> dos Grupos do Google.
>>>>> Para cancelar a inscrição neste grupo e parar de receber seus e-mails,
>>>>> envie um e-mail para [hidden email].
>>>>> Para obter mais opções, acesse
>>>>> https://groups.google.com/groups/opt_out.
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Att, Rodrigo Sanguanini (aka Killer Skull)
>>>> www.killerskull.com
>>>
>>>
>>>
>>>
>>> --
>>> Att, Rodrigo Sanguanini (aka Killer Skull)
>>> www.killerskull.com
>>
>>
>>
>>
>> --
>> Att, Rodrigo Sanguanini (aka Killer Skull)
>> www.killerskull.com
>
> --
> Lua BR - http://groups.google.com/group/lua-br
> ---
> Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos
> Grupos do Google.
> Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie
> um e-mail para [hidden email].
> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
NI!

() - www.asciiribbon.org
/\ - ascii ribbon campaign against html e-mail and proprietary attachments

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
Att, Rodrigo Sanguanini (aka Killer Skull)
www.killerskull.com

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

Roberto Ierusalimschy
In reply to this post by Jhonathan Paulo Banczek
> Olá, em questão da estrutura usada foi em "for" mesmo, criei uma tabela e
> inseri nela os elementos. Usei tbm uma funçao pra fazer isso... O problema
> é que a memória não ia desalocando enquanto ia usando o programa e até re
> usando a variavel. Imagina, x = { [insira aqui 1 milhão de numeros] }, a
> memória sobre, dai vc já usou esse x, e faz x = nil, ou x = "qualquer
> coisa"... a memória que foi usada não é desalocada.

Não seria mais simples você divulgar o(s) programa(s) que você usou
nos testes, ao invés de dar essas descrições vagas? Nenhuma discussão
séria sobre o comportamento de um dado programa pode progredir sem
acesso ao programa em questão.

-- Roberto

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

Rodrigo Sanguanini
Roberto, simplesmente tente:

x = {}
for i=1, 10000000 do
x[i] = i
end

No modo interativo do lua, neste momento, olhe o processo e o quanto ele está utilizando
após, faça

x = nil

verifque
após, faça

collectgarbage()

pronto.

Ele especificou no começo o que ele fez, era fácil implementar um código.


Abraço


Em 10 de setembro de 2013 15:31, Roberto Ierusalimschy <[hidden email]> escreveu:
> Olá, em questão da estrutura usada foi em "for" mesmo, criei uma tabela e
> inseri nela os elementos. Usei tbm uma funçao pra fazer isso... O problema
> é que a memória não ia desalocando enquanto ia usando o programa e até re
> usando a variavel. Imagina, x = { [insira aqui 1 milhão de numeros] }, a
> memória sobre, dai vc já usou esse x, e faz x = nil, ou x = "qualquer
> coisa"... a memória que foi usada não é desalocada.

Não seria mais simples você divulgar o(s) programa(s) que você usou
nos testes, ao invés de dar essas descrições vagas? Nenhuma discussão
séria sobre o comportamento de um dado programa pode progredir sem
acesso ao programa em questão.

-- Roberto

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
Att, Rodrigo Sanguanini (aka Killer Skull)
www.killerskull.com

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

Roberto Ierusalimschy
> Ele especificou no começo o que ele fez, era fácil implementar um código.

Pequenas diferenças na implementação podem dar grandes diferenças nos
resultados...

-- Roberto

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
Reply | Threaded
Open this post in threaded view
|

Re: Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

Jhonathan Paulo Banczek
In reply to this post by Roberto Ierusalimschy
Roberto

Pra elucidar, fiz um pdf rapido aqui com a explicação e execução passo a passo do que estou fazendo, em anexo (lua memoria.pdf)


ps: Roberto, não postei o código porque era elementar: um laço for e uma variavel table em Lua, em Python 
um laço for e uma variavel list. Acredito que não tem como fazer 'magia negra' com essa implementação.

Abraço 

Em terça-feira, 10 de setembro de 2013 15h31min26s UTC-3, Roberto Ierusalimschy escreveu:
> Ol�, em quest�o da estrutura usada foi em "for" mesmo, criei uma tabela e
> inseri nela os elementos. Usei tbm uma fun�ao pra fazer isso... O problema
> � que a mem�ria n�o ia desalocando enquanto ia usando o programa e at� re
> usando a variavel. Imagina, x = { [insira aqui 1 milh�o de numeros] }, a
> mem�ria sobre, dai vc j� usou esse x, e faz x = nil, ou x = "qualquer
> coisa"... a mem�ria que foi usada n�o � desalocada.

N�o seria mais simples voc� divulgar o(s) programa(s) que voc� usou
nos testes, ao inv�s de dar essas descri��es vagas? Nenhuma discuss�o
s�ria sobre o comportamento de um dado programa pode progredir sem
acesso ao programa em quest�o.

-- Roberto

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

lua memoria.pdf (824K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Dúvida com Memória em Lua. Comparação com Python 3.3.1 vs Lua 5.2.1

Fabio Mascarenhas
In reply to this post by Roberto Ierusalimschy
Sem falar que o interpretador Python usa contagem de referências como método primário de coleta de lixo (junto com um coletor geracional para pegar os ciclos). Um microbenchmark "alocar uma estrutura de dados enorme e estanque, liberar a única referência para ela e verificar o consumo de memória logo depois" está exercitando o melhor caso para contagem de referências.

Jhonathan, Lua *vai* reutilizar (ou liberar) os 200Mb de memória que foram alocados para o vetor, sem você precisar chamar "collectgarbage()" manualmente, só é mais difícil capturar isso em um microbenchmark, versus em uma aplicação real.

--
Fabio Mascarenhas


2013/9/10 Roberto Ierusalimschy <[hidden email]>
> Ele especificou no começo o que ele fez, era fácil implementar um código.

Pequenas diferenças na implementação podem dar grandes diferenças nos
resultados...

-- Roberto

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.

--
Lua BR - http://groups.google.com/group/lua-br
---
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para [hidden email].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
12