powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / При каких условиях Hibernate дает выигрыш?
7 сообщений из 7, страница 1 из 1
При каких условиях Hibernate дает выигрыш?
    #33566376
jdo123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такой вопрос передо мной поставили, и мне нужно отвечать. Лично моё мнение, что говоирть о выигрыше производительности здесь не стоит, и вряд ли он будет(хотя за счёт кэширования может и будет). Здесь главное удобство написания кода, ОО стиль и всё такое. Есть ещё мнения?
Может, ответ такой: "Выигрыш есть при желании писать Объектно-ориетированный код" ? :)
И всё же, есть ли выигрыш в производительнсоти иногда, при каких-то условиях?
...
Рейтинг: 0 / 0
При каких условиях Hibernate дает выигрыш?
    #33566434
Maxel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) в HQL намного проще писать запросы. Конечно, все зависит от задачи, можно столкнуться с тем, что придется вручную писать sql на пол страницы, но как показывает практика, 90% логики - это банальные CRUD, поэтому экономия времени разработки - очень существенная.

2) Если данные нужно не просто показать и забыть, а использовать несколько раз - понятно, что кэш даст существенный прирост производительности.

3) При разработке web приложений, неплохо бы использовать MVC, тот же Struts - следовательно данные, получаемые от пользователя можно сохранять в объектах, которые на самом деле очень легко потом сохранять в базе с использованием Hibernate

4) При сохранении объектов, hibernate отслеживает, какие поля были изменены, а какие- нет. Следовательно трафик с базой и нагрузка на нее будет меньше, чем если сохранять все данные без такого анализа.
...
Рейтинг: 0 / 0
При каких условиях Hibernate дает выигрыш?
    #33566667
апhjп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а при каких условиях лучше не использовать hibernate?
...
Рейтинг: 0 / 0
При каких условиях Hibernate дает выигрыш?
    #33566898
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем случае можно сказать что hibernate не дает выигрыша только на тривиальных приложениях.

см. http://hibernate.org/15.html

авторSo why don't you provide an "official" Hibernate benchmark?

Many people try to benchmark Hibernate. All public benchmarks we have seen so far had (and most still have) serious flaws.

The first category of benchmarks are trivial micro benchmarks. Hibernate of course will have an overhead in simple scenarios (loading 50.000 objects and doing nothing else is considered trivial) compared to JDBC. See this page for a critique of a trivial benchmark. If you'd like to avoid writing your own trivial and not very conclusive tests, have a look at the perftest target in Hibernate's build file. We use this target to check if a trivial performance bug slipped into the Hibernate code. You can use it to verify the JDBC overhead of Hibernate in trivial situations. But, as should be clear now, these numbers are meaningless for real application performance and scalability.

In a fair benchmark with complex data associations/joins, highly concurrent access, random updates of data in the application, real-world data set size, and utilizing other Hibernate features, you will find Hibernate perform very well. Why is there no such benchmark provided by the Hibernate developers? The first reason is trust. Why would you believe that the numbers shown by the vendor of a product, in a comparative benchmark, are true? The second reason is applicability. Certainly, a fair benchmark would show the benefits of Hibernate in a typical complete application with realistic concurrent access. However, the number of variables in any decent benchmark make it almost impossible to transfer these results into reasonable conclusions about the performance of your own application. Your application is different. (If you came here from a forum thread, think about it: instead of arguing with you about your trivial micro benchmark, we would be arguing why you don't see the same results in your application...) For these reasons we always recommend that you benchmark your application yourself. We encourage you to see performance and load testing as a natural stage in the life of your application - don't go into production with only micro benchmarks. Setting up benchmarks for your application and scenario, and helping you in this stage is in fact one of our usual support and consulting services.
...
Рейтинг: 0 / 0
При каких условиях Hibernate дает выигрыш?
    #33568607
jdo123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuriВ общем случае можно сказать что hibernate не дает выигрыша только на тривиальных приложениях.

см. http://hibernate.org/15.html

авторSo why don't you provide an "official" Hibernate benchmark?

Many people try to benchmark Hibernate. All public benchmarks we have seen so far had (and most still have) serious flaws.

...

It turns out that Hibernate is very fast if used properly, in highly concurrent multi-user applications with significant data sets.
пишут на сайте. Так всё же, когда он не даёт выиграша? Мне кажется, что в случае butch processing-а не даёт, и лучше stored procedure по производительности ничего нельзя применить.

Ещё вот такой вопрос - есть такой конкурент как JDO. Если я не ошибаюсь, то поставщик этого продукта http://]http://www.solarmetric.com/Software/Kodo/ и продукт платный. Есть ли ещё минусы или плюсы у него по сравнению с Hibernate?

Какие ещё есть подходы в этой области? Hibernate, EJB(не знаком, к сожалению), JDO, Native SQL
Может есть ещё фрэймворки?
...
Рейтинг: 0 / 0
При каких условиях Hibernate дает выигрыш?
    #33569651
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
значит в области orm дело сейчас обстоит так
было EJB версии < 3 и JDO. В EJB были такие EntityBean'ы, а JDO это была спецификация (т.е. это не продукт) на средства ORM в java по которой независимые поставщики делали свои продукты.

В настоящее время JDO и EntityBean переросли в EJB3, который вместо EntityBean'ов позволяет использовать pojo-объекты и больше похож именно на JDO.

Hibernate до 3 версии был самостоятельным средством ORM в java не соответсвовавшим JDO, в отличие например от Kodo. В 3й же версии он выполнили его интеграцию именно с EJB3

Какие ещё есть подходы в этой области?
Традиционно в java для работы с RDBMS есть JDBC, SQLJ, JDO, EntityBean'ы, Hibernate и т.д.

при этом от JDO, EntityBean'ы надо перехадить на EJB3 и в качестве Persistence Manager'а использовать Hibernate 3.

описание концепции
ORM
...
Рейтинг: 0 / 0
При каких условиях Hibernate дает выигрыш?
    #33580220
gvgstruts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hibernate позволяет написать код кот. можно использовать в обыкновенном java-приложении в сервлете или в ejb-контейнере, т.к. его api не зависит от этих платформ.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / При каких условиях Hibernate дает выигрыш?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]