JIT a metody zwracające ten sam rezultat

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:

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

?

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ę.

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 :-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1