Ładowanie danych tekstowych 26 MB z bazy danych zużywającej stertę JVM o wielkości 258 MB

Aplikacja (Spring, JPA Hibernate, Sybase 12, Webapp) uruchamiana lokalnie na starcie zużywa 40 MB 256MB przestrzeni sterty opartej na VisualVM. Kiedy wyzwalam wyszukiwanie, które zwraca 70 000+ wierszy (dane tekstowe nie zawierają obiektów blob), wykres kosmiczny sterty strzela do 256 MB i wyrzuca się z pamięci.Rozwiązałem to za pomocą setMaxResults (limit). Jednak, gdy odpytywałem te same dane, wkleiłem je do pliku tekstowego i zapisałem w systemie plików, widzę, że rozmiar tekstu wynosi tylko 26 MB.

W efekcie 216 MB (z 256-40) jest zużywane przez załadowanie 26 MB ilości tekstu z baz danych,który zużywa 190 MB do czasu, gdy brakuje pamięci? Być może będą to frameworki, ale nie widzę, jak może zużywać więcej niż rzeczywiste ładowane dane ...

** pamiętaj, że rozwiązałem to za pomocą setMaxResults (limit), moje pytanie NIE dotyczy tego, co robić, ale dlaczego, w celach edukacyjnych.

questionAnswers(2)

yourAnswerToTheQuestion