Czy są jakieś techniki, dzieki którym możemy pomóc Jit'owi w jego optymalizacjach i polepszyć trochę wydajność naszej aplikacji?
- Nie rzucajcie wyjątków
- Nie używajcie branczhowania kodu
- Krótkie Metody
- i zero dziedziczenie
A kod w Javie będzie szybki
by Jarek Pałka
Tyle mam w zapiskach, niestety nie pamiętam w której prezentacji to mówił
Do tego co powyżej można dodać ogólnie pojętą niemutowalność + finale wszędzie gdzie ma to sens, plus to: https://blog.overops.com/java-on-steroids-5-super-useful-jit-optimization-techniques/
Ja to tylko tak zostawię http://wiki.c2.com/?PrematureOptimization
Uzywanie monadycznych struktur do zarzadzania błędami zamiast sterowanie aplikacji nibywyjątkami (bo czy jesli uzytkownik poda niepoprawny pesel to naprawde jes wyjątek?)
Nie pomagaj. JIT jest pisany tak, żeby optymalizować NORMALNY kod, taki jaki jest w typowych aplikacjach.
JIT (oczywiście mamy różne jity i różne JVM) się zmienia - kod, który był słabo optymalizowany miesiąc temu, może być teraz lepiej ogarniany... i na odwrót - czasem może się pogorszyć (mało prawdopodobne).
Pisz czytelny kod.
M.in. w tym wykładzie jeden ze współtwórców jdenego z JIT poruszał temat, że lepiej nie pomagać JITowi, bo czasem lepiej napisać coś prosto, bez zbędnych optymalizacji, ale tak jak 90% programistów, bo JIT będzie optymalizował właśnie te najczęściej spotykane przypadki.
Z naszego podworka, mozna tez poczytac co tam sie pod spodem dzieje: https://jgardo.dev/ Mial tez prezentacje na Confiturze (btw wrzucili nagrania z tego roku):