kincajou: (колбаса)
K ([personal profile] kincajou) wrote2006-11-29 12:52 am

Шутко

Вставка байткода в исходник на жаве. Ну, типа, для оптимизации.

[identity profile] kincajou.livejournal.com 2006-11-30 06:09 pm (UTC)(link)
то есть такое есть ина самом деле? а для чего?

[identity profile] joppux.livejournal.com 2006-11-30 08:38 pm (UTC)(link)
Не, это я не по теме на самом деле сказал. Хотя Java-ассемблеры действительно есть, но оптимизации это почти не дает - ведь там чисто стековая машина, никаких регистров, все оптимизации практически на уровне исходного языка.
AspectJ позволяет модифицировать классы по определенным шаблонам, вставляя в нужных местах байт-код. Простой пример - трассировка методов - вставляем код печати во все методы.

[identity profile] kincajou.livejournal.com 2006-12-02 12:47 pm (UTC)(link)
то есть это для "патчения по-живому"?

[identity profile] joppux.livejournal.com 2006-12-02 02:02 pm (UTC)(link)
Смотря что считать по-живому :)
Обычно это еще один этап компиляции - обработка готовых class-файлов. Хотя никто не запрещает это делать в рантайме.