Oi Ericson -
se o seu projeto está incorporando as bibliotecas do Python, usando o
de forma "embedded", para chamar
funções de Python dentro do próprio processo, não há como fazer uma
subsittuição direta pelo Pypy.
A interface direta com as linguagens C e C++ é uma característica do
CPython - a implementação de referência do Python. Essa interface com
C e código nativo funciona de forma diferente em outras
implementações.
Se você deseja otimizar a parte que está escrita em Python ai, sem
perder a compatibilidade, o negócio é usar o "CYTHON" - Cython é um
super-conjunto da linguagem Python, que compila o código Python parar
arquivos intermediários em C. Dependendo do código você pode terum
ganho de 10-30% só trocando Python interpretado pelo Cython - mas não
faz grande mágica desse jeito. O que ele permite é espcificar,
seletivamente, algumas
variáveis e funções que serão de tipagem "estática" e com valores
nativos, dentro do código Pythonico. Assim, uma variável de contador,
acessada muitas vezes num loop apertado deixa de ser um "objeto int de
Python", que permite intropecção e número ilimitado de dígitos, e
passa a ser um inteiro nativo de CPU, de 32 ou 64 bits, que ficará
confortavelmente acomodado no cache mais interno da CPU durante a
execução do loop.
O interessante dessa abordagem é que você não vai precisar mudar nada
no seu código C que chama as funções em Python - só vai precisar
alterar o "makefile" ou "setup.py" e mudar seus arquivos .py para
.pyx, e ir otmizando-os gradualmente. (Não deixe de procurar dicas
sobre profiling também, para não perder tempo otimizando o que não tem
importância - alias, faça isso mesmo antes de começar a usar o
Cython).
A página do projeto está aqui:
http://cython.org/
2014-01-29 <
erickson...@dce.ufpb.br>: