- SIGSEGV сбои во время GC
- выбросы кучей, показывающие поврежденные или смещенные ссылки на объекты
- Прерывистое воскресение очищенных слабых ссылок
- Призрачные ссылки становятся надежными (!)
- Access < /li>
Кэш -кодовый кеш. Долгое время безотказной работы с многоуровневым компиляцией < /li>
< /ul>
⚙ Стоимость системы: < /h3>
jvm: openjdk 17, hotspot < /li>
jvm: openjdk 17, hotspot < /li>
jvm: openjdk 17, hotspot < /br />
jvm: openjdk 17, hotspot < /br />
J Протестирован zgc, та же проблема) < /li>
Платформа: ARM64 и x86_64 < /li>
Флаги:
-XX:+UseCompressedOops
-XX:+UseCompressedClassPointers
-XX:+TieredCompilation
-XX:+UnlockDiagnosticVMOptions -XX:+PrintInlining -XX:+PrintCompilation
< /code>
< /li>
< /ul>
Обзор архитектуры < /h3>
- небезопасно отрезок. />
unsafe.putLong(bufferAddress + offset, unsafe.getLong(someObject));
< /code>
, затем, затем получить их с помощью: < /p>
Object ref = unsafe.getObject(bufferAddress + offset);
< /code>
java Agent Instrmentation < /strong> < /li>
< /ol>
Агент времени выполнения изменяет критические методы, такие как SO: < /p>
. < /li>
GC работает вскоре после инструментальных инструментов, особенно во время высоких показателей распределения. < /li>
Память доступна по 8-байтовым распределенным границам. Пробое:
Отключение сжатых упс с -xx: -Usecompressedoops (исправляет его, но убивает эффективность памяти). - Выравнивание адресов вручную по 8 или 16-м. При выключении).
- Переключение на varhandle (тот же результат при более старых JVM).
- Избегание каких-либо исключений или путаницы типа в инъекционном коде (все еще попадает в ловушки). />
Мои вопросы: < /h3>
Как сжатые ООП взаимодействуют с небезопасным доступом к памяти, особенно по адресам невыполнения за пределами HEAP? Справочная безопасность? - Почему ссылки, хранящиеся вне-heap, ведут себя по-разному в архитектурах процессора (x86 против ARM64), когда сжатые упс включены?
- Компиляция? < /strong> < /li>
Каковы паттерны GC-SAFE для работы с отключенными ссылками и агентами, особенно на современных JVM, таких как ZGC или G1? /> Редкая комбинация сжатого сжатого объекта , небезопасные трюки с памятью , преобразование Bytecode и jit fragility - возникает только при специфических условиях платформы + платформы + платформы
- < Недотеринный и может имитировать ошибки GC или повреждение памяти
- Почти нет публичной документации по этим краям
Любая понимание того, как становлять становления этой архитектурой или рекомендованные альтернативы с низкой головкой для перекрестной/платформы.
---
Подробнее здесь: https://stackoverflow.com/questions/795 ... fter-agent - небезопасно отрезок. />
Почему мои небезопасные ссылки на объекты вне HEAP становятся недействительными после прибора на основе агента, когда вк ⇐ JAVA
Почему мои небезопасные ссылки на объекты вне HEAP становятся недействительными после прибора на основе агента, когда вк
Я строю систему Java с низкой задержкой, которая объединяет управление памятью вне HEAP с использованием sun.misc.unsafe с динамическим прибором байт-кодов (через агент Java). Все работает нормально в нормальных условиях - но в производстве, с включенными сжатыми упс, система начинает показывать странное поведение: < /p>
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Php getopts() гибридный первый параметр, делающий недействительными остальные параметры
Anonymous » » в форуме Php - 0 Ответы
- 44 Просмотры
-
Последнее сообщение Anonymous
-