Aktywne Wpisy

Treść przeznaczona dla osób powyżej 18 roku życia...

Minieri +156
Wichniarka autentycznie nie da się słuchać, nie dość że autorytet słaby, bo piłkarz to był co najwyżej średni, to pierdzieli te swoje kocopoły z tak irytującą manierą, że nie wierzę, że nadal jest regularnie zapraszany do studia. Wiadomo że pewnie Borek załatwił mu tę robotę bo friendship ended with Hajto a Borek musi widocznie mieć jakiegoś swojego przygłupa z Budeslyś przy boku
#mecz
#mecz





Hej,
mam aplikację w JavaEE (Spring + JSF + Hibernate + Primefaces + OracleDB). Jest w niej funkcja generująca pdfy i zapisująca je do bazy danych. Ogólny schemat generowania pliku pdf wygląda następująco:
- pobranie zrzutu mapy z innej aplikacji za pomocą IOUtils.toByteArray
- wyrenderowanie widoku JSF(z opisem mapy) do pliku PDF i dodanie do niego tej właśnie mapy
- dodanie/edycja rekordu w bazie z tym właśnie plikiem.
Ogólnie funkcja działa dobrze, ponieważ jest zwykle używana dla jednego obiektu. Problem pojawia się, gdy chcę zrobić skrypt przetwarzający ponad 10k rekordów.
Jedna sprawa, że idzie to bardzo mozolnie ale raczej tego nie przeskoczę ale też skrypt wraz z czasem zżera coraz więcej pamięci(do 0,5 MB na 1 rekord). Analizuję właśnie wyciek pamięci przez JVisualVM ale nie bardzo ogarniam temat. Z tego co widzę, to pojawiają się duże ilości obiektów typu HashMap$Node, HashMap$Node[], HashMap które nie znikają. Czy jest jakaś możliwość podglądnięcia skąd te obiekty pochodzą i dlaczego GC ich nie usuwa? Wydaje mi się, że to jest związane z tym renderowaniem widoku JSF do pliku pdf.
Z góry dzięki za pomoc bo ja wymiękam. Nawet nie chodzi o poprawę kodu tylko znalezienie przyczyny ale jak będzie trzeba to podrzuce kawałek kodu.