viagem pelas vms do python

36
Rodrigo P. M. de Araújo [email protected]

Upload: rodrigo-araujo

Post on 09-Jul-2015

74 views

Category:

Documents


0 download

DESCRIPTION

Palestra apresentada na PyCampus 2010

TRANSCRIPT

Page 1: Viagem pelas VMs do python

Rodrigo P. M. de Araújo

[email protected]

Page 2: Viagem pelas VMs do python

Gerenciamento de memória

Gerenciamento de threads

Desempenho

Page 3: Viagem pelas VMs do python

Coleta de lixo

Page 4: Viagem pelas VMs do python

Global InterpreterLock

Page 5: Viagem pelas VMs do python

JIT (Just in Time)

Page 6: Viagem pelas VMs do python
Page 7: Viagem pelas VMs do python

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

Page 8: Viagem pelas VMs do python
Page 9: Viagem pelas VMs do python
Page 10: Viagem pelas VMs do python

Possui GIL

Não possui JIT

Coletor de lixo: Contagem de referências

Page 11: Viagem pelas VMs do python

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.

Page 12: Viagem pelas VMs do python

JIT (x86) – Custo de manutenção alto

Page 13: Viagem pelas VMs do python

PEP 3003 – Python LanguageMoratorium

Page 14: Viagem pelas VMs do python
Page 15: Viagem pelas VMs do python
Page 16: Viagem pelas VMs do python
Page 17: Viagem pelas VMs do python

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

Page 18: Viagem pelas VMs do python
Page 19: Viagem pelas VMs do python
Page 20: Viagem pelas VMs do python
Page 21: Viagem pelas VMs do python
Page 22: Viagem pelas VMs do python
Page 23: Viagem pelas VMs do python

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

Page 24: Viagem pelas VMs do python
Page 25: Viagem pelas VMs do python
Page 26: Viagem pelas VMs do python

Dynamic Language Runtime

SilverLight

Windows Forms

Page 27: Viagem pelas VMs do python
Page 28: Viagem pelas VMs do python
Page 29: Viagem pelas VMs do python

Interpretador Python escrito em Python

Page 30: Viagem pelas VMs do python

Interpretador Python escrito em RPython +ferramenta de tradução para RPython.

Page 31: Viagem pelas VMs do python

Subconjunto da linguagem Python

Permite inferência de tipos

Linguagem de alto nível

Page 32: Viagem pelas VMs do python

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

Page 33: Viagem pelas VMs do python

Ferramenta de tradução permite gerar código em: C

.Net

Java

Possibilidade de unificar o desenvolvimento do CPython, IronPython, Jython.

Page 34: Viagem pelas VMs do python

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

Page 35: Viagem pelas VMs do python
Page 36: Viagem pelas VMs do python

[email protected]

twitter.com/fenrrir