| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2010 16:19:37
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
von.juliano wrote:Não há nenhuma configuração excepcional, e os jars que coloquei são os que vem no blank-project do VRaptor + os do hibernate + os do Spring. Coloquei a url do drop.io no post de cima, baixa os projetos pra você avaliar também!
Fiquei curioso com isso, pois o desempenho foi uma surpresa para mim também. Vou investigar isso, e se eu puder ajudar dou meus pitacos aqui.
Abraços
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2010 16:27:43
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Online
|
analisei os códigos e percebi que o Struts faz cache de páginas, ou de requisições (não sei direito)...
ou seja, só a primeira requisição é feita de verdade, todas as outras ele pega do cache...
o vraptor ainda não faz isso, então a cada requisição ele vai no banco e procura o funcionario, enquanto o struts só faz isso uma vez...
um teste mais realista seria para cada requisição carregar um id diferente (acho que dá pra passar um parâmetro diferente em cada requisição no jmeter)...
e ainda é uma boa oportunidade de incluir a população dos parâmetros no seu teste...
faça o IndexController do VRaptor receber um Funcionario, e manda um funcionario.id como parâmetro na requisição...
faça o similar no Struts 2...
mande sempre parâmetros diferentes...
se possível popule o seu banco para que ele tenha um funcionario para cada id q vc for passar como parâmetro
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2010 16:48:29
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Online
|
falei besteira sobre o cache... tava acessando a uri errada
mas o teste que eu falei pra vc fazer eh um bom teste tbm...
nos meus testes aqui (1000 req, 10 concorrentes, no apache bench):
- Struts 2:
VRaptor:
chuto que ao adicionar população de parâmetros o VRaptor vai ficar na mesma e o Struts vai ficar um pouco mais lento...
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2010 17:22:57
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Online
|
bom, colocar a passagem de parâmetros meio que dá na mesma mesmo...
mais uma estatística:
ou seja, se vc não tem uma quantidade de requests simultâneos muito grande na sua aplicação, não vai ser isso que vai decidir a performance da sua aplicação... um usuario esperar 23 ms ou 5 ms dá na mesma....
e se vc precisa de muitos requests simultâneos, não vai ser a escolha do framework que vai permitir a escalabilidade da sua aplicação, vai ser alguma outra estratégia como mais de um servidor e um proxy reverso na frente
de qualquer forma vamos investigar o código do vraptor pra ver se existe algum gargalo de performance
Muito obrigado von.juliano por compartilhar seus resultados com a gente =)
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/07/2010 17:52:48
|
von.juliano
GUJ Master
![[Avatar]](/images/avatar/efb61dd984183066a8815190a28bd956.jpg)
Membro desde: 15/01/2007 13:31:32
Mensagens: 1266
Offline
|
Lucas, não precisa agradecer, testar e compartilhar os resultados é o mínimo que eu posso fazer!
Agradeço a atenção, e o que eu poder fazer pra ajudar a melhorar o VRaptor, estou à disposição!
Flw!
|
É difícil manter-se religioso quando algumas pessoas simplesmente não são carbonizadas por raios!
Desenvolvendo software de forma simples! - http://vonjuliano.wordpress.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/07/2010 13:42:39
|
Paulo Silveira
Administrador
![[Avatar]](/images/avatar/a87ff679a2f3e71d9181a67b7542122c.jpg)
Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline
|
So para atualizar quem estava acompanhando: descobrimos que as varias chamadas para o Spring feitas internamente consomem muito tempo de processo, vamos deixar a execução mais simples (porem um pouco mais acoplada) internamente, para atingir um tempo semelhante ao do Struts 2 (na lista de emails tem um jar beta com essa otimizacao, mas nao deve ser usado em producao).
|
http://blog.caelum.com.br twitter: @paulo_caelum
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/07/2010 14:57:34
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Paulo, como foram feitos os testes? Via profiler?
Abraços
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/07/2010 15:16:29
|
Paulo Silveira
Administrador
![[Avatar]](/images/avatar/a87ff679a2f3e71d9181a67b7542122c.jpg)
Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline
|
Oi Garcia
Exato. O profiler rapidamente mostrou que 91% da requisicao era gasto em chamadas ao metodo getBean do container do spring.
|
http://blog.caelum.com.br twitter: @paulo_caelum
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/08/2010 16:52:05
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Online
|
Pra quem estava acompanhando aqui, corrigimos alguns dos problemas de performance e melhoramos uns 60% do tempo de requisição.
Pra quem por favor puder fazer o teste, use esse snapshot:
https://oss.sonatype.org/content/repositories/snapshots/br/com/caelum/vraptor/3.2.0-SNAPSHOT/vraptor-3.2.0-20100825.193222-1.jar
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/08/2010 17:10:22
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Eu já havia respondido no github, mas vamos lá de novo  Sensacional, muito boa notícia. Hoje a noite vou fazer uns testes naquela minha aplicação grande que possui umas actions bem furiosas. Aí passo meu feedback. Lucas, você pode compartilhar o plano do JMeter? Quero adaptar para meu caso. (edit) oops, agora ví tua resposa sobre o Apache Bench. Valeu Lucas. Abraços
This message was edited 1 time. Last update was at 25/08/2010 17:16:32
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2010 16:42:37
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Fiz os testes e tudo OK. Minhas aplicações rodaram perfeitamente. Porém nesse build faltou o web-fragment.
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2010 19:25:01
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Online
|
é que esse build foi feito com o maven, não sei se ele inclui o web-fragment... vou dar uma olhada
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/09/2010 12:05:44
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Online
|
corrigido, a proxima versão vai vir com o web-fragment.xml
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/12/2010 16:06:51
|
garcia-jj
JWizard
Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline
|
Vamos lá ressucitar mais um tópico...
Estou curioso de como foram feitos os testes com o profiler. Qual o profiler usado? Pergunto isso porque estou medindo o desempenho de uma aplicação minha com o JProfiler, porém não consegui achar onde medir o tempo gasto nas execuções.
|
http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/12/2010 16:08:57
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6395
Online
|
no JProfiler vc tem que clicar em Record CPU (talvez record memory tb) e tem uma tela que te mostra isso que vc quer..
na verdade ele vai te mostrar o que tá demorando mais pra executar (procura por hotspots ou coisas do tipo)
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
|
|