Desempenho do Hibernate

5 respostas
D

Bom, antes de tudo gostaria de dizer q enfim entendi pq q o hibernate possui tantos fãs. Ele é simplesmente fantástico, ainda mais se usado em conjunto com o XDoclet ele fica altamente produtivo… mas, utilizando hibernate (para aplicacoes standalone) notei q ele eh meio (bem) lento na hora de abrir uma sessao. Como estou fazendo DAOs para a minha aplicacao, dentro de cada metodo do DAO eu abro a sessao, inicio a transacao e faço as operacoes, q são rápidas. Com isso tenho um overhead muito grande, pois o programa perde muito tempo soh pra abrir a conexao, e como isso eh feito varias vezes…

Já tentei fazer pooling com o C3P0 e cache, mesmo assim o desempenho continua pessimo, eh normal isso?!!? Eu sei q em utilizacao com o TOmcat, por exemplo utiliza-se datasource do tomcat, e assim tem-se um ganho de performance, mas no modo standalone ele eh assim mesmo?!!?

5 Respostas

J

Olá, abrir uma sessão a cada requisição é tão custoso quanto abrir uma conexão com o banco se vc usar JBDC apenas. Procure por thread local session no site do hibernate que vc vê como resolver esse problema.

valeuz…

M

até onde eu sei, as sessões não são feitas pra serem criadas e destruidas toda hora…

D

“jack_-_ganzha”:
Olá, abrir uma sessão a cada requisição é tão custoso quanto abrir uma conexão com o banco se vc usar JBDC apenas. Procure por thread local session no site do hibernate que vc vê como resolver esse problema.

valeuz…

Ae Jack, vlw, era por isso mesmo q eu tava procurando, soh q eu nao consegui implementar… tipo eu vi o artigo 42, nele ele da um codigo, soh q ele da um lookup num “SessionFactory”, como q eu faço pra ele achar um sessionfactory via lookup?!? Aqui ta o pedaco do código:

SessionFactory sf = (SessionFactory) new InitialContext().lookup("SessionFactory");
         s = sf.openSession();
         session.set(s);
J

Olá, darkseid, vc não precisa encontrar a SessionFactory via JNDI, vc pode coloca-la como um atributo da classe que faz o ThreadLocalSession e cria-la usando o Configuration do Hibernate mesmo.

valeuz…

J

Oi

Dark, se o desempenho for mesmo crucial, eu encararia o Torque como uma melhor solucão, sem nenhum esforco sobrenatural, a tua app fica rapidinha…

T+

Criado 27 de janeiro de 2005
Ultima resposta 1 de fev. de 2005
Respostas 5
Participantes 4