Esta dica é boa para aqueles que estão programando em Python para o N900.

Em programação existe uma ferramenta chamada profiler. Com essa ferramenta é possível analisar um programa enquanto ele está rodando. É diferente de debugar (onde você acaba executando o programa passo a passo para ver o que está acontecendo).

O profiling é extremamente útil (e muitas vezes necessário) para otimizar o código. Por exemplo: seu programa está com algum gargalo, em alguma operação, e você não consegue identificar onde é, devido à sua complexidade. Através de um profiler você talvez consiga essa informação, pois ele vai indicar quantas vezes (e por quanto tempo) um método ou função do programa foi chamado.

Em alguns casos também mostra a utilização de variáveis, e às vezes dá até para descobrir vazamentos de memória através dele (objetos que são criados, mas depois de utilizados, por algum motivo qualquer, não são destruídos).

O Python possui um esquema de profiling, porém por motivos legais (possui código proprietário), parte dele não está disponível de forma fácil (nos repositórios), o que faz com que não seja possível utilizá-lo. Parte do profiler vem na instalação padrão, mas outra parte precisa de um pacote à parte.

O pedaço que vem na instalação padrão do Python é a que gera as informações de profiling. E a que falta é justamente a parte que interpreta essas informações.

Se você mandar instalar esse outro pacote, receberá esta mensagem:

sh-2.05b# apt-get install python-profiler
Reading package lists... Done
Building dependency tree... Done
Package python-profiler is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package python-profiler has no installation candidate

A solução para isso é baixar e instalar o pacote na mão. No meu caso instalei no Scratchbox, mas no próprio N900 é igual.

Como o Maemo é baseado na família Debian, fui até o site dessa distribuição buscar o nosso pacote fujão. Neste link você verá todas as possibilidades.

Como usamos o Python versão 2.5, baixei a equivalente a essa versão, que é a 2.5.2-1 (nessa página basta selecionar de qual servidor quer baixar o arquivo). Após isso, é só mandar instalar (como root):

dpkg -i python-profiler_2.5.2-1_all.deb

E usar como manda a documentação do Python e a Wiki do Maemo.org.