Каждый раз, когда мы запускаем приложение Java с помощью команды «java className», будет создан новый экземпляр jvm. Профайлер в режиме исполнения идентифицирует горячие точки, что означает многократное выполнение методов и добавление собственного кода этих горячих точек. Теперь все java-приложение будет интерпретировано хотя бы один раз и к тому моменту будут определены hotspots, поэтому в следующий раз, если мы запустим Java-приложение, то этот собственный код hotspots будет непосредственно принят и не будет интерпретироваться снова. Теперь мой вопрос: если мы снова запустим java-приложение, тогда будет создан новый экземпляр jvm, а горячие точки будут определены в предыдущем jvm. как это работает? Оба являются разными jvm.Как работает Profiler в JIT-компиляторе механизма выполнения?
1
A
ответ
0
Если я правильно понял вас, основным вопросом было бы следующее: - это информация, связанная с JIT (горячие точки и скомпилированный код), сохраняемая через перезапуски JVM?
Ответ обычно нет. JIT сохраняет всю эту информацию в Metaspace, все это создается во время выполнения, а затем исчезает при остановке JVM. Он не сохраняется нигде, и когда снова запускается новая JVM, оптимизация JIT будет переделана.
Почему «вообще»:
За последние годы были разговоры о фактической сохранении этой информации. OpenJDK сообщество рассматривает вопрос о его реализации, а также есть платное решение, которое фактически осуществляет эту функцию в качестве основной точки продажи:
Смежные вопросы
- 1. Как работает использование + в качестве механизма каста?
- 2. IronPython, отображающий .Net-тип для механизма выполнения.
- 3. NetBeans Profiler
- 4. ipython profiler
- 5. Как насчет CodePro Profiler?
- 6. Установка Искры в качестве механизма выполнения по умолчанию для улья
- 7. Scala profiler?
- 8. webkit profiler
- 9. Sql Profiler Scan Запуск для выполнения хранимой процедуры
- 10. Socloz MonitoringBundle Profiler аргументов
- 11. Как сам экземпляр механизма/концепции работает в java?
- 12. Изменение метода во время выполнения с помощью горячего механизма обмена
- 13. Как с программным обеспечением Netbeans Profiler?
- 14. Изменение механизма размещения планировщика
- 15. сеанс не работает при развертывании механизма приложения
- 16. cudaErrorIllegalAdress in Profiler
- 17. Почему код CUDA работает быстрее в NVIDIA Visual Profiler?
- 18. Реализация механизма паузы и возобновления для выполнения цикла javascript
- 19. Понимание трассировки SQL Profiler
- 20. NHibernate Profiler - кэшированные объекты
- 21. Что касается механизма рекомендаций
- 22. NYTProf Profiler для Perl
- 23. Symfony Profiler phpactiverecord
- 24. Rails Admin & Mini Profiler
- 25. Неверные результаты в Visual Studio Performance Profiler
- 26. Linux Eclipse CDT profiler
- 27. Непрерывный SQL-запрос Profiler
- 28. Xamarin Profiler - Память, выделенная
- 29. DevPartner Profiler Community Edition
- 30. Изменение механизма таблиц в MySQL
Так что, если мы снова запустить приложение Java, то те, вся информация уже не будет, как будет создан новый экземпляр jvm, тогда в чем смысл определения горячих точек? Как эти горячие точки можно использовать снова? – SurajPrajapati
JVM идентифицирует горячие точки, поэтому он знает, какие части кода необходимо скомпилировать в двоичные. Если вы когда-нибудь захотите повторно использовать что-то из JIT, это будут не горячие точки, а фактический скомпилированный код. Но, как я писал выше, вы не можете их повторно использовать. Существуют некоторые технологии, которые пытаются предоставить такое решение, но они не являются общими, не широко используются, и в 99,99% случаев любое приложение Java, с которым вы сталкиваетесь, будет выполнять JIT во время выполнения, как следует из его названия (Just-In -Time-компилятор). –