AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
NAV
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.05.2018, 22:50   #9  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Про JRebel - тут интерпретация похоже совсем не причем. Причем тут возхможность встроиться в загрузчик:

https://www.quora.com/How-does-JRebel-work


JRebel leverages the JVM's built-in instrumentation and hot swap to redefine the core libraries and to add an extra field to each object to make it appear as if the JVM is doing something it can't do.


  • Adds a resizable layer of indirection to each object that's essentially an extra private field Map[String, Any], which holds references to new fields added to an object
  • Adds a resizable layer of indirection to each class that's essentially Map[Signature, ImplementingClass], which holds references to anonymous classes with the actual method implementation for methods added to a class
  • Modifies references in all loaded classes to fields and methods introduced after the class was loaded to account for the layers of indirection (either by referencing into the map for fields or by calling methods in anonymous classes instead of on the class itself)
  • Instruments the java.lang.reflection and stack trace libraries to mask the above changes, making them appear as if direct access to new fields and methods were possible. For example, myClass.getField("x") may internally reference into the Map[String, Any] on the object

При этом, насколько я понял, с JIT ничего не делается - компиляция не отменяется. То есть вместо внутренних эффективных структур в байткод встраиваются мэпы. За счет этого можно как-то менять и одновременно тормоза.

Все дело в структуре данных и ссылках, а не в компиляторе или интерпретаторе.

Про tiered compilation - интересная статья про то, как там устроено внутри - фичу практически сделали, но вместо интерпретатора там неоптимизированный JIT в качестве первого звена. См Why not ‘Interpreted’? и Why not LLVM? в конце статьи.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
облака и паутина... ax_mct Курилка 30 11.11.2016 20:09
Eldar: Экономика Открытий mazzy Курилка 5 21.03.2010 17:06
Axapta vs .NET - порассуждаем? cvc Курилка 8 06.12.2008 00:03
Имеется информация о том, что сайт www.ms-dynamics.ru используется для атак на компьютеры пользователей. glibs Курилка 7 28.08.2008 18:53
Final Fantasy X. Movie mazzy Курилка 10 13.11.2004 23:10

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 13:50.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.