Frameworks x performance do servidor web

9 respostas
prog.tiago

Boa noite galera,

Estou começando a desenvolver aplicações web comerciais. Vou viver o primeiro desenvolvimento de um sistema profissional agora! hehe.
Nessa situação, muitas dúvidas surgem e estou tentanto saná-las com pesquisas e com o GUJ.

A minha dúvida é sobre a performance do servidor web mediante o uso de frameworks. Por exemplo, será que quanto mais frameworks eu utilizar, menos performance terei? Por outro lado, os frameworks agilizam meu trabalho, será que o uso deles pode ser muito comprometedor?

Irei utilizar JSF com Hibernate, PrimeFaces e Spring Security. No entanto, pesquisando achei muito interessante o uso do Spring para injeção de dependências e trabalho com Programação orientada à aspectos (AspectJ).

Como ambiente de produção terei um servidor VPS da Integrator com 512MB rodando TOMCAT.

Com base em suas experiências, qual a relação de desempenho x frameworks em aplicativos comerciais?

Abraços

9 Respostas

jeroqueiroz

Os Frameworks são como você falou para otimizar o desempenho, mas após complicar será java normal, pois os Frameworks são feitos sobre a plataforma com proposito de agilizar o desenvolvimento, porém ele segue o padrão Web com Java e não deverá ter influencias no desempenho.

Quanto a questão de utilização opte por framewoks de código aberto e com boas comunidades para dúvidas…

Estes que você citou já são bastantes utilizados no mercado.

jeanmalvessi

Servidor com 512MB ? Se o sistema começar a ficar grande, a coisa vai começar a complicar!

maior_abandonado

prog.tiago:
Boa noite galera,

Estou começando a desenvolver aplicações web comerciais. Vou viver o primeiro desenvolvimento de um sistema profissional agora! hehe.
Nessa situação, muitas dúvidas surgem e estou tentanto saná-las com pesquisas e com o GUJ.

A minha dúvida é sobre a performance do servidor web mediante o uso de frameworks. Por exemplo, será que quanto mais frameworks eu utilizar, menos performance terei? Por outro lado, os frameworks agilizam meu trabalho, será que o uso deles pode ser muito comprometedor?

Irei utilizar JSF com Hibernate, PrimeFaces e Spring Security. No entanto, pesquisando achei muito interessante o uso do Spring para injeção de dependências e trabalho com Programação orientada à aspectos (AspectJ).

Como ambiente de produção terei um servidor VPS da Integrator com 512MB rodando TOMCAT.

Com base em suas experiências, qual a relação de desempenho x frameworks em aplicativos comerciais?

Abraços

bom… você parece preocupado se isso dai vai rodar bem ou não… ai eu te faço duas perguntas:

essa sua aplicação tem alguma coisa que foge de cruds básicos, que exija um processamento um pouco mais alto?
você tem alguma estimativa de usuários simultâneos utilizando essa aplicação? se sim, qual?

eu também eu te daria duas dicas… já que você esta usando JSF, evite cometer um erro comum do pessoal cometer, de ficar jogando um monte de managed bean com o escopo session… sério mesmo, evite muito isso, isso é uma das coisas que acaba com a performance. A segunda dica seria da uma atenção especial para a a parte de JPA, nas consultas, para agilizar, veja as partes que você consulta muitas tabelas, procure fazer os joins para não ficar fazendo várias queries buscando uma entidade, use aquela anotação @Fetch, considere um cache de segundo nível… isso evita alguns problemas de performance.

rmendes08

prog.tiago:
Boa noite galera,

Estou começando a desenvolver aplicações web comerciais. Vou viver o primeiro desenvolvimento de um sistema profissional agora! hehe.
Nessa situação, muitas dúvidas surgem e estou tentanto saná-las com pesquisas e com o GUJ.

A minha dúvida é sobre a performance do servidor web mediante o uso de frameworks. Por exemplo, será que quanto mais frameworks eu utilizar, menos performance terei? Por outro lado, os frameworks agilizam meu trabalho, será que o uso deles pode ser muito comprometedor?

Irei utilizar JSF com Hibernate, PrimeFaces e Spring Security. No entanto, pesquisando achei muito interessante o uso do Spring para injeção de dependências e trabalho com Programação orientada à aspectos (AspectJ).

Como ambiente de produção terei um servidor VPS da Integrator com 512MB rodando TOMCAT.

Com base em suas experiências, qual a relação de desempenho x frameworks em aplicativos comerciais?

Abraços

A resposta é SIM! Quanto mais frameworks você utiliza a tendência é de piora do desempenho da sua aplicação, afinal você está adicionando camadas e mais camadas no seu software, e a tendência ao usar frameworks é consumir mais recursos e mais processamento (especialmente quando eles usam mágicas como instrumentação de bytecode). Assim, antes de sair colocando frameworks no projeto, avalie os gargalos do projeto, e o mais importante de tudo: entenda como o framework funciona, entenda o que ele faz por baixo dos panos pois é aí que você vai conseguir acelerar o seu desenvolvimento sem inviabilizar a aplicação.

jweibe

jeroqueiroz:
Os Frameworks são como você falou para otimizar o desempenho, mas após complicar será java normal, pois os Frameworks são feitos sobre a plataforma com proposito de agilizar o desenvolvimento, porém ele segue o padrão Web com Java e não deverá ter influencias no desempenho.

Quanto a questão de utilização opte por framewoks de código aberto e com boas comunidades para dúvidas…

Estes que você citou já são bastantes utilizados no mercado.

Discordo em parte deste comentário!! Concordo que os frameworks ajudam no desenvolvimento dando uma maior agilidade no processo e de uma forma geral eles fazem o trabalho “grosso” que você deveria fazer.
Quanto a parte de o jeroqueiroz diz que o framework não deverá influenciar no desempenho, isso eu já discordo uma vez que tal escolha deve ser muito bem analisada antes de escolher que framework usar.
Exemplo: JSF e suas bibliotecas de componentes, em uma aplicação que não tenha tantos acessos e que não receba muitas requisições de forma geral JSF e Primefaces vejo como uma boa escolha. Agora pega um sistema “parrudo” onde necessita receber muitas requisições e muitos usuários acessando simultaneamente, e me fala se um framework não influencia na performance?

prog.tiago não minha humilde opinião você deve analisar muito bem os requisitos do sistema que você ira desenvolver, se for um sistema simples com poucos acessos vai de um Framework Component Based (JSF),
caso seja um sistema de muitos acessos, que receba muitas requisições vai de Framework Action Based (vRaptor).

jeroqueiroz

jweibe realmente o despenho que ele irá causar será de acordo a arquitetura que ele foi desenvolvido…

prog.tiago

Na verdade é 1GB, me enganei. Será que devo me preocupar?

prog.tiago

maior_abandonado:

bom… você parece preocupado se isso dai vai rodar bem ou não… ai eu te faço duas perguntas:

essa sua aplicação tem alguma coisa que foge de cruds básicos, que exija um processamento um pouco mais alto?
você tem alguma estimativa de usuários simultâneos utilizando essa aplicação? se sim, qual?

eu também eu te daria duas dicas… já que você esta usando JSF, evite cometer um erro comum do pessoal cometer, de ficar jogando um monte de managed bean com o escopo session… sério mesmo, evite muito isso, isso é uma das coisas que acaba com a performance. A segunda dica seria da uma atenção especial para a a parte de JPA, nas consultas, para agilizar, veja as partes que você consulta muitas tabelas, procure fazer os joins para não ficar fazendo várias queries buscando uma entidade, use aquela anotação @Fetch, considere um cache de segundo nível… isso evita alguns problemas de performance.

Sim, na verdade não são apenas CRUDS, o cliente irá por exemplo fazer upload de arquivos em PDF para o servidor, e poderá buscar e baixar esses arquivos quando desejar. O espaço utilizado para esse arquivo será algo em torno de 500MB.

Qunato aos usuários simultâneos, a estimativa é de que trabalho até 10 usuários simultâneos, pois o sistema será acessado em mais de uma localidade.

Anteriormente eu disse que o ambiente possui 512MB, na verdade, possui 1GB.

Muito obrigado com as dicas de frameworks, certamente as seguirei.

Na sua opinião, meu ambiente está de acordo com as exigências que eu citei acima?

Abraços

maior_abandonado

prog.tiago:
maior_abandonado:

bom… você parece preocupado se isso dai vai rodar bem ou não… ai eu te faço duas perguntas:

essa sua aplicação tem alguma coisa que foge de cruds básicos, que exija um processamento um pouco mais alto?
você tem alguma estimativa de usuários simultâneos utilizando essa aplicação? se sim, qual?

eu também eu te daria duas dicas… já que você esta usando JSF, evite cometer um erro comum do pessoal cometer, de ficar jogando um monte de managed bean com o escopo session… sério mesmo, evite muito isso, isso é uma das coisas que acaba com a performance. A segunda dica seria da uma atenção especial para a a parte de JPA, nas consultas, para agilizar, veja as partes que você consulta muitas tabelas, procure fazer os joins para não ficar fazendo várias queries buscando uma entidade, use aquela anotação @Fetch, considere um cache de segundo nível… isso evita alguns problemas de performance.

Sim, na verdade não são apenas CRUDS, o cliente irá por exemplo fazer upload de arquivos em PDF para o servidor, e poderá buscar e baixar esses arquivos quando desejar. O espaço utilizado para esse arquivo será algo em torno de 500MB.

Qunato aos usuários simultâneos, a estimativa é de que trabalho até 10 usuários simultâneos, pois o sistema será acessado em mais de uma localidade.

Anteriormente eu disse que o ambiente possui 512MB, na verdade, possui 1GB.

Muito obrigado com as dicas de frameworks, certamente as seguirei.

Na sua opinião, meu ambiente está de acordo com as exigências que eu citei acima?

Abraços

eu acredito que assim… essa configuração é suficiente sim… contanto que você não faça nenhuma cagada… no bom português… resumidamente você deverá tomar cuidado para não criar situações que ferram com o desempenho…

Criado 11 de abril de 2012
Ultima resposta 16 de abr. de 2012
Respostas 9
Participantes 6