Java: Różnice pomiędzy wersjami

Linia 1: Linia 1:
Na serwerach ''MyDevil'' Java jest dostępna w wersjach OpenJDK: 1.8 (domyślnej) oraz 1.7.
+
Na serwerach ''MyDevil'' Java jest dostępna w wersjach OpenJDK: 1.7, 1.8 (domyślnej) oraz 11, 12.
  
=== Zmiana wersji Javy ===
+
=== Zmiana wersji Java ===
  
Aby zmienić wersję Javy na 1.8 z domyślnej 1.7 należy edytować zmienną <code>export JAVA_VERSION="1.7"</code>. Można skorzystać z własnej wersji Java (również z wersji 32 bitowej) ściągniętej bezpośrednio z repozytoriów FreeBSD i uruchomionej na swoim koncie.
+
Aby zmienić wersję Java z domyślnej 1.8 należy ustawić zmienną odpowiadającej danej wersji:
 +
<code>export JAVA_VERSION="1.7"</code>
 +
<code>export JAVA_VERSION="11"</code>
 +
<code>export JAVA_VERSION="12"</code>
 +
 
 +
Można skorzystać również z innych wersji Java (w tym 32 bitowej) ściągniętej bezpośrednio z repozytoriów FreeBSD i uruchomionej na swoim koncie.
  
 
==== Pamięć RAM ====
 
==== Pamięć RAM ====
Linia 9: Linia 14:
 
Aby ograniczyć pamięć RAM dostępną procesowi java należy go uruchomić z opcją <code>-Xms<pamięć> -Xmx<pamiec></code>, gdzie ''<pamiec>'' to ilość pamięci, na przykład 1g, 128m, 1024k.
 
Aby ograniczyć pamięć RAM dostępną procesowi java należy go uruchomić z opcją <code>-Xms<pamięć> -Xmx<pamiec></code>, gdzie ''<pamiec>'' to ilość pamięci, na przykład 1g, 128m, 1024k.
  
Dodatkowo można użyć <code>-XX:PermSize <pamięc> -XX:MaxPermSize <pamięć></code> aby ustawić ''Permanent Generation'' - miejsce, gdzie są przetrzymywane pliki klas, które są wynikiem skompilowanych klas i stron jsp. W momencie osiągnięcia maksimum miejsca wirtualna maszyna java uruchamia ''Full Garbage Collection''. Gdy ''Full Garbage Collection'' po wyczyszczeniu starych klas bez referencji nadal nie będzie miejsca na nowo wygenerowane wtedy maszyna wirtualna javy wyłączy się z błędem ''Out-of-Memory Error (OOME)''. Parametr <code>-XX:MaxPermSize <pamięć></code> nie jest już dostępny w Javie w wersji 8.
+
Dodatkowo można użyć <code>-XX:PermSize <pamięc> -XX:MaxPermSize <pamięć></code> aby ustawić ''Permanent Generation'' - miejsce, gdzie są przetrzymywane pliki klas, które są wynikiem skompilowanych klas i stron jsp. W momencie osiągnięcia maksimum miejsca wirtualna maszyna java uruchamia ''Full Garbage Collection''. Gdy ''Full Garbage Collection'' po wyczyszczeniu starych klas bez referencji nadal nie będzie miejsca na nowo wygenerowane wtedy maszyna wirtualna javy wyłączy się z błędem ''Out-of-Memory Error (OOME)''. Parametr <code>-XX:MaxPermSize <pamięć></code> nie jest już dostępny w Javie w wersji 1.8.
  
 
Istnieje również możliwość skorzystania z parametru <code>-Xss <pamięć></code> w celu ustawienia rozmiaru stosu dla każdego wątku javy. W takim stosie są trzymane adresy do pamięci zwracanych przez funkcję obiektów, argumenty do funkcji itp.  
 
Istnieje również możliwość skorzystania z parametru <code>-Xss <pamięć></code> w celu ustawienia rozmiaru stosu dla każdego wątku javy. W takim stosie są trzymane adresy do pamięci zwracanych przez funkcję obiektów, argumenty do funkcji itp.  

Wersja z 19:40, 17 kwi 2019

Na serwerach MyDevil Java jest dostępna w wersjach OpenJDK: 1.7, 1.8 (domyślnej) oraz 11, 12.

Zmiana wersji Java

Aby zmienić wersję Java z domyślnej 1.8 należy ustawić zmienną odpowiadającej danej wersji: export JAVA_VERSION="1.7" export JAVA_VERSION="11" export JAVA_VERSION="12"

Można skorzystać również z innych wersji Java (w tym 32 bitowej) ściągniętej bezpośrednio z repozytoriów FreeBSD i uruchomionej na swoim koncie.

Pamięć RAM

Aby ograniczyć pamięć RAM dostępną procesowi java należy go uruchomić z opcją -Xms<pamięć> -Xmx<pamiec>, gdzie <pamiec> to ilość pamięci, na przykład 1g, 128m, 1024k.

Dodatkowo można użyć -XX:PermSize <pamięc> -XX:MaxPermSize <pamięć> aby ustawić Permanent Generation - miejsce, gdzie są przetrzymywane pliki klas, które są wynikiem skompilowanych klas i stron jsp. W momencie osiągnięcia maksimum miejsca wirtualna maszyna java uruchamia Full Garbage Collection. Gdy Full Garbage Collection po wyczyszczeniu starych klas bez referencji nadal nie będzie miejsca na nowo wygenerowane wtedy maszyna wirtualna javy wyłączy się z błędem Out-of-Memory Error (OOME). Parametr -XX:MaxPermSize <pamięć> nie jest już dostępny w Javie w wersji 1.8.

Istnieje również możliwość skorzystania z parametru -Xss <pamięć> w celu ustawienia rozmiaru stosu dla każdego wątku javy. W takim stosie są trzymane adresy do pamięci zwracanych przez funkcję obiektów, argumenty do funkcji itp.

Patrz też