/ / Zużycie pamięci dla aplikacji internetowej Java (300 MB za wysokie?) - Java, wiosna, hibernacja, pamięć, prędkość

Zużycie pamięci dla aplikacji internetowej Java (za 300MB za wysoka?) - Java, wiosna, hibernacja, pamięć, prędkość

Czy mogę wybrać twój mózg w kwestii problemu z pamięcią?

Moja aplikacja Java, która nie jest ogromna (jak 14000 LOC), zużywa około 300 MB pamięci. Działa na Tomcat z bazą danych MySQL. Używam hibernacji, wiosny i prędkości.

Wydaje się, że nie ma wycieków, bo to powodujestabilizuje się i 300 MB, bez dalszego wzrostu. (Również zrobiłem trochę profilowania.) Mój zespół był jednak zaniepokojony ilością miejsca, z którego korzysta. Czy to wydaje się wysokie? Czy masz jakieś sugestie dotyczące sposobów jej zmniejszenia?

Wszelkie przemyślenia są doceniane.

Joe

Odpowiedzi:

4 dla odpowiedzi № 1

Liczba LOC nie jest wskaźnikiem, ile sterty będzie używać aplikacja Java; nie ma korelacji między nimi.

300 MB nie jest szczególnie duże dla serweraaplikacja, która buforuje dane, ale jest nieco duża w przypadku aplikacji, która nie przechowuje żadnych danych buforowanych ani danych sesji (ale ponieważ dotyczy to samego serwera WWW, 300 MB jest ogólnie rozsądne).


2 dla odpowiedzi nr 2

Ilość kodu (LOC) rzadko ma duży wpływjeśli chodzi o wykorzystanie pamięci przez aplikację, to w końcu przechowywane są zmienne i obiekty, które zajmują większość pamięci. Dla mnie 300 megabajtów nie brzmi dużo, ale oczywiście zależy to od konkretnego scenariusza użytkowania:

  • Ile pamięci ma serwer produkcyjny?
  • Ilu użytkowników korzysta z takiej ilości pamięci?
  • Ile rośnie zużycie pamięci na sesję użytkownika?
  • Ilu użytkowników oczekujesz współbieżnie uzyskiwanie dostępu do aplikacji w trybie produkcyjnym?

Na ich podstawie możesz wykonać pewne obliczenia, np. czy Twoje środowisko produkcyjne jest w stanie obsłużyć oczekiwaną liczbę użytkowników, czy potrzebujesz więcej sprzętu, czy może potrzebujesz serializować niektóre dane na dysk / db itp.


0 dla odpowiedzi № 3

Nie mogę składać żadnych obietnic, ale nie sądzęmuszę się martwić. Uruchomiliśmy kilka aplikacji internetowych przy użyciu Glassfish, używając hibernacji, i każda z nich używa około 800-900 MB w urządzeniu deweloperskim, często mają 2 domeny działające w każdym rozmiarze.


0 dla odpowiedzi nr 4

Jeśli potrzebujesz zmniejszyć swój ślad, przynajmniej upewnij się, że używasz Velocity 1.6 lub wyższej. 1.5 zmarnowało sporo pamięci.