Насколько я понимаю, смещение кэшируется для пары тип объекта + метод.
А если оптимизация допустим не прошла, например функция ожидает все время один и тот же передаваемый тип аргумента, но мы передали другой тип и происходит деоптимизация, спустя какое-то время при выполнении программы, если передаем один и тот же аргумент много раз, она снова становится оптимизированной?