JIT a metody zwracające ten sam rezultat

JIT a metody zwracające ten sam rezultat
S9
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 3573
0

Witam. Tak się zastanawiam:
Załóżmy że mamy niemutowalną klase reprezentująca punkt 2D, która ma hashcode i equalsa w oparciu o współrzędne i rózne metody typu obliczanie odległości od (0,0) czy liczenie odległości od innego punktu, translakcje itd.
Czy JIT w takim przypadku dokona optymalizacji i jesli taki hashcode będzie wielokrotnie obliczany to tak naprawde będzie "zcachowany" tzn wyglądał tak naprawde jakoś tak:

Kopiuj
int hashcode() {
 return 100; //or whatever
}

?

Wibowit
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: XML Hills
0

ZTCW to HotSpot nie ma optymalizacji per konkretna instancja klasy tylko per klasa. Czytałem, że za to GraalVM ma jakieś optymalizacje per obiekt, ale w jakich sytuacjach są robione to nie wiem.

Z drugiej strony, jeśli np liczysz hashcode tego samego obiektu w pętli (i da się to statycznie zweryfikować) to HotSpot powinien być w stanie wyciągnąć to liczenie przed pętlę.

jarekr000000
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: U krasnoludów - pod górą
  • Postów: 4712
0

Są różne JITy , ale z tego co wiem, żaden z popularnych nie ma tekiej okptymalizacji (poza lokalną jak wyżej wspomniano). Ale możesz dopisać swoją. Zrób se JVMa.. albo dopisz coś do Graala :-)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.