Wpis z mikrobloga

Wrzucam trochę jako ciekawostka.
10 minutowe zapisy z ParallelGC, w komentarzu SerialGC. Właśnie nagrywa się NewParallelGC, za jakieś 10 minut dorzucę w komentarzu.
Aplikacja: Dość mała aplikacja napisana w Swingu (okolice 2 kloc), która tworzy sporo nowych obiektów o którym czasie życia (1-2 minuty absolutny maks dla około 95% obiektów).

#java #jvm #garbagecollector #ciekawostki #programowanietrochetez
Wyrewolwerowanyrewolwer - Wrzucam trochę jako ciekawostka.
10 minutowe zapisy z Para...

źródło: comment_Ab36hOv3GcM9jtRvHsp4IdgzLmWJPpHM.jpg

Pobierz
  • 26
@GotoFinal: Z G1GC działy się cyrki, ale tak, odpalę i nagram. Następny w kolejce jest CMS GC.
Fakt, jest sporo immutable, ale duża część obiektów jest tworzona, testowana w działaniu i po chwili wyrzucana (ich czas życia zamknie się pewnie w okolicach 2s). Ot taki przypadek po prostu ( ͡° ͜ʖ ͡°)
Wydaje mi się że już z nim nie będzie jakiejś widocznej różnicy, a co dopiero
@mccloud: @GotoFinal: Tutaj NewParallel GC.
Domyślnie z tego co wiem to on się nie uruchamia w żadnym przypadku (na wieloprocesorowych powyżej 2GB ramu wskakuje stary, zwykły parallel, na słabszych - serial).
Mówię oczywiście o maszynie/trybie klienckiej/klienckim. W trybie serwerowym jeżeli dobrze pamiętam - parallel domyślnie.

Odpala się go przez dodanie jako argument JVM polecenia -XX:+UseParNewGC
Wyrewolwerowanyrewolwer - @mccloud: @GotoFinal: Tutaj NewParallel GC.
Domyślnie z te...

źródło: comment_nfBT5t9FZACEFPXtbq8UQAViFSeiATAO.jpg

Pobierz
@GotoFinal: Wydaje mi się że da się to zrobić/pokombinować przy ustawieniach nagrywania (możesz sobie ustawić interwały co ile ma rejestrować i co), ale boję się że przy tak szczegółowych informacjach po prostu zabraknie mi miejsca na dysku (a mam tylko z 50GB wolnego :P).
Już teraz i tak większość czasu JVM jaki poświęciło w wątkach to wait() na zadany okres żeby co tyle rejestrować statsy :D

Zapuściłem teraz G1, tylko miejcie
@Wyrewolwerowanyrewolwer: a weź go po-torturuj czasem jednocześnie dając szansę,
-XX:MaxGCPauseMillis=1 -XX:G1NewSizePercent=40 -XX:G1MaxNewSizePercent=80
No chyba że już ci się nie chce, jakoś wybaczę :P
Jestem ciekawy czy da radę zmniejszyć wtedy maxa do np 10ms, bo pewnie 1 nie osiągnie.
@GotoFinal: Chce mi się, ale już nie dzisiaj (jest jeszcze do nagrania cms).
Przede wszystkim będę chciał trochę wydłużyć ilość cykli w edenie i s0/s1 żeby te obiekty które są kasowane podczas majorgc/fullgc (fajnie to widać na wykresie od seriala i newparallela) miały szansę być wyrąbane będąc jeszcze w młodej generacji, a nie już w starej. Potem ewentualnie ustawić większy rozmiar sektora(tylko no to pokazuje że bez sensu jest używanie tutaj