Rodrigo P. M. de Araújorodrigo.araujo@veezor.com
Gerenciamento de memóriaGerenciamento de threadsDesempenho
Coleta de lixo
Global Interpreter       Lock
JIT (Just in Time)
 Implementação de referencia do Python Versão atual 2.7.1 e 3.1.3(incompatível com a série 2) Release 1.0 em 1994 Rele...
 Possui GIL Não possui JIT Coletor de lixo: Contagem de referências
 Códigos em C “Difícil de manter”. “Difícil modificar”. Difícil voltar atrás na escolha do gerenciamento de  memória e...
 JIT (x86) – Custo de manutenção alto
PEP 3003 – Python Language        Moratorium
 Python + JVM Anunciado em 26/11/2000 Jython 2.2 – 2007 Jython 2.5 – 2009 Não existe GIL Vários algoritmos de coleta...
 Python + Microsoft .Net Versão atual 2.6 / Python 2.6 Versão 2.7 em estágio beta Não existe GIL. Possui JIT Vários ...
 Dynamic Language Runtime SilverLight Windows Forms
 Interpretador Python escrito em             Python
 Interpretador Python escrito em RPython + ferramenta de tradução para RPython.
 Subconjunto da linguagem Python Permite inferência de tipos Linguagem de alto nível
 Códigos de alto nível Aspectos ortogonais são inseridos durante a tradução   Estratégia de coleta de lixo   Modelo de...
 Ferramenta de tradução permite gerar código em:   C   .Net   Java Possibilidade de unificar o desenvolvimento do CPy...
 Python + Python = Python Anunciado em 2003 PyPy 1.0 – 2007 – Python 2.4 PyPy 1.4 – 2010 – Python 2.5 PyPy 1.5 – 2011...
rodrigo.araujo@veezor.com    twitter.com/fenrrir
Viagem pelas VMs do python
Viagem pelas VMs do python
Viagem pelas VMs do python
Viagem pelas VMs do python
Viagem pelas VMs do python
Viagem pelas VMs do python
Viagem pelas VMs do python
Viagem pelas VMs do python
Viagem pelas VMs do python
Viagem pelas VMs do python
Viagem pelas VMs do python
Viagem pelas VMs do python
Viagem pelas VMs do python
Viagem pelas VMs do python
Viagem pelas VMs do python
Viagem pelas VMs do python
Próximos SlideShares
Carregando em…5
×

Viagem pelas VMs do python

207 visualizações

Publicada em

Palestra apresentada na PyCampus 2010

  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Viagem pelas VMs do python

  1. 1. Rodrigo P. M. de Araújorodrigo.araujo@veezor.com
  2. 2. Gerenciamento de memóriaGerenciamento de threadsDesempenho
  3. 3. Coleta de lixo
  4. 4. Global Interpreter Lock
  5. 5. JIT (Just in Time)
  6. 6.  Implementação de referencia do Python Versão atual 2.7.1 e 3.1.3(incompatível com a série 2) Release 1.0 em 1994 Release 2.2 em Dezembro de 2001 Release 2.5 em Setembro de 2006 Multiplataforma Número vasto de extensões
  7. 7.  Possui GIL Não possui JIT Coletor de lixo: Contagem de referências
  8. 8.  Códigos em C “Difícil de manter”. “Difícil modificar”. Difícil voltar atrás na escolha do gerenciamento de memória e threads.
  9. 9.  JIT (x86) – Custo de manutenção alto
  10. 10. PEP 3003 – Python Language Moratorium
  11. 11.  Python + JVM Anunciado em 26/11/2000 Jython 2.2 – 2007 Jython 2.5 – 2009 Não existe GIL Vários algoritmos de coleta de lixo Possui JIT Interoperabilidade com eco-sistema Java Sem suporte a extensões C Multiplataforma
  12. 12.  Python + Microsoft .Net Versão atual 2.6 / Python 2.6 Versão 2.7 em estágio beta Não existe GIL. Possui JIT Vários algoritmos de coleta de lixo Interoperabilidade com eco-sistema .Net Suporte parcial a extensões C (IronClad) Multiplataforma
  13. 13.  Dynamic Language Runtime SilverLight Windows Forms
  14. 14.  Interpretador Python escrito em Python
  15. 15.  Interpretador Python escrito em RPython + ferramenta de tradução para RPython.
  16. 16.  Subconjunto da linguagem Python Permite inferência de tipos Linguagem de alto nível
  17. 17.  Códigos de alto nível Aspectos ortogonais são inseridos durante a tradução  Estratégia de coleta de lixo  Modelo de threads  JIT Suporta vários algoritmos de coleta de lixo Suporta mais de um modelo de threads Vários tipos de JIT já foram implementados
  18. 18.  Ferramenta de tradução permite gerar código em:  C  .Net  Java Possibilidade de unificar o desenvolvimento do CPython, IronPython, Jython.
  19. 19.  Python + Python = Python Anunciado em 2003 PyPy 1.0 – 2007 – Python 2.4 PyPy 1.4 – 2010 – Python 2.5 PyPy 1.5 – 2011 – Python 2.7 Possui GIL!!! # remoção programada Possui JIT (x86, x86-64) # arm no release 1.5 Suporte parcial a extensões C (cpyext) Multiplataforma
  20. 20. rodrigo.araujo@veezor.com twitter.com/fenrrir

×