projects:lock_free_testing:start
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
students:lock_free_testing:start [2020/02/16 17:35] – ashahov | students:lock_free_testing:start [2020/03/03 22:27] – ashahov | ||
---|---|---|---|
Line 3: | Line 3: | ||
---- | ---- | ||
- | [[Lin-Check]] | + | |
+ | ===== Варианты модификации сущеcтвующего байт-кода ===== | ||
+ | - Подмена ClassLoader`a | ||
+ | - Создать свой кастомный: | ||
+ | * Create a custom system(java -Djava.system.class.loader=com.example.MyCustomClassLoader) | ||
+ | - Использовать библиотеки | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * Плюсы: | ||
+ | * Это довольно просто | ||
+ | * Минусы: | ||
+ | * Не понятно, | ||
+ | * Только статическая инициализация | ||
+ | * Распостраняется на все использования данного класса в программе | ||
+ | |||
+ | - Java instrument | ||
+ | * Java Agent - позволяет менять байт-код | ||
+ | * Javassist - позволяет генерировать байт-код | ||
+ | * Attach API(https:// | ||
+ | * Плюсы: | ||
+ | * Динамическая замена байт-кода(возможно даже в конкретном потоке) | ||
+ | * Классический способ для подмены реализации класса(см. jRebel) | ||
+ | * Минусы: | ||
+ | * Много лишних действий для получения результата | ||
+ | * Ссылки: | ||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
+ | |||
+ |
projects/lock_free_testing/start.txt · Last modified: 2020/04/14 10:19 by kel