[Cascavel-pm] Arquivo configuracao a parte

Nilson Santos Figueiredo Junior acid06 em gmail.com
Terça Agosto 15 18:46:37 PDT 2006


On 8/15/06, Luis Motta Campos <monsieur_champs em yahoo.com.br> wrote:
>   Me fale sobre a geração de código SQL.
>   E como é o footprint de memória destas bibliotecas?

Que tipo de coisa exatamente você quer saber?

Sobre a utilização de memória... bem, eu utilizo o DBIx::Class com o
Catalyst. O conjunto, no total, tem mais ou menos umas 80 dependências
de instalação. Isso é muito código e gasta uma memória inicial
razoável (lembrando que isso é algo estático, que não cresce, e no
caso de vários forks ela é compartilhada). Eu não sei o número de
dependências exclusivas do DBIx::Class, sempre trabalho com o
conjunto.

Ao tratar grandes volumes de dados de uma vez só, você não vai querer
fazer isso diretamente utilizando objetos, pois um objeto gasta mais
memória que uma entrada em uma hash ou em uma array. Você
provavelmente iria querer trabalhar um nível abaixo.

Eu não possuo dados precisos, mas o resumo é: utilizar um mapeador
objeto-relacional gasta mais memória inicialmente e a utilização de
memória para os dados (em seu programa) é maior. Nada que um pente a
mais de memória não resolva.

Se você realmente está interessado nisso tudo e animar fazer alguns
benchmarks poderia depois enviar os resultados para a lista e,
possivelmente, colocar no wiki do Catalyst. Não é segredo para ninguém
que o consumo de memória é maior e é interessante ver qual é o limite
da viabilidade das alternativas modernas.

O legal do DBIx::Class em relação à maioria dos outros mapeadores
objeto relacionais é que é possível alterar o comportamento de
qualquer uma das fases do processo. Então você poderia implementar a
criação de objetos mais leves, que gastem menos memória, mas com menos
recursos, entre outras coisas. Ele é feito de forma bastante flexível
e tudo no sistema é visto como um componente (a desvantagem é que isso
tudo faz com que o tempo de inicialização das classes seja grande o
que o torna inviável para CGIs normais).

Reforçando: não é uma silver bullet, mas é algo bom pra pelo menos 90%
dos projetos em minha opinião.

-Nilson Santos F. Jr.


Mais detalhes sobre a lista de discussão Cascavel-pm