Good to know Vitaly! So a poor example then. Better example is an abstract class with a method implementation that no subtypes override, yet multiple subtypes are found to be the receiver of a particular call site. Should we expect a monomorphic call site in that case.
On Sun, Dec 29, 2019 at 12:42 PM Vitaly Davidovich <vita...@gmail.com> wrote: > > > On Sun, Dec 29, 2019 at 10:22 AM Brian Harris <brianfromore...@gmail.com> > wrote: > >> Hello! >> >> I was hoping to get one point of clarification about avoiding megamorphic >> call sites, after reading these excellent articles: >> >> >> http://www.insightfullogic.com/2014/May/12/fast-and-megamorphic-what-influences-method-invoca/ >> >> https://shipilev.net/blog/2015/black-magic-method-dispatch/ >> https://gist.github.com/djspiewak/464c11307cabc80171c90397d4ec34ef >> >> >> When the runtime type of the call receiver is being observed, is it >> considered whether that type actually overrides the method in question? For >> example, when the method is an interface's default method that none of the >> runtime call receivers override, can we expect to get a monomorphic call >> site regardless of how many different receiver types are observed at >> runtime, given there is only one method body to invoke? >> > In Hotspot, CHA is currently (AFAIK) disabled for default methods ( > https://bugs.openjdk.java.net/browse/JDK-8036580). So you have to be > careful putting hot code into them. Overriding the method in the impl and > just calling super will at least restore some performance if type profiling > at the callsite helps. > >> >> Thanks >> Brian >> >> -- >> You received this message because you are subscribed to the Google Groups >> "mechanical-sympathy" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to mechanical-sympathy+unsubscr...@googlegroups.com. >> To view this discussion on the web, visit >> https://groups.google.com/d/msgid/mechanical-sympathy/CAFtUM9Zt%2BwJvkDix_ZEYA%2B5u6hA86VQW7d5ceEyvxetiLvq%2BfA%40mail.gmail.com >> <https://groups.google.com/d/msgid/mechanical-sympathy/CAFtUM9Zt%2BwJvkDix_ZEYA%2B5u6hA86VQW7d5ceEyvxetiLvq%2BfA%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- > Sent from my phone > > -- > You received this message because you are subscribed to the Google Groups > "mechanical-sympathy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to mechanical-sympathy+unsubscr...@googlegroups.com. > To view this discussion on the web, visit > https://groups.google.com/d/msgid/mechanical-sympathy/CAHjP37EiQQKRfJvm3AVv87DiUpimxckyTVTtHRxgZDYUhfMC4g%40mail.gmail.com > <https://groups.google.com/d/msgid/mechanical-sympathy/CAHjP37EiQQKRfJvm3AVv87DiUpimxckyTVTtHRxgZDYUhfMC4g%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "mechanical-sympathy" group. To unsubscribe from this group and stop receiving emails from it, send an email to mechanical-sympathy+unsubscr...@googlegroups.com. To view this discussion on the web, visit https://groups.google.com/d/msgid/mechanical-sympathy/CAFtUM9a-gFquj%3DUmQLHZuXSui9neBOsCTLF9E_KdOt%2B_4AaATQ%40mail.gmail.com.