Вы можете заранее соткать rt.jar
и заменить его в своем JDK / JRE.Обратите внимание, что переплетение времени загрузки не будет работать, поскольку Javaagent не имеет доступа к загрузчику загрузчиков классов.
Однако быстрый поиск показывает, что во всем JDK есть только одно место (Sun 1.6.0_26), которое вызывает System.gc()
явно:
java.nio.Bits#reserveMemory
Может быть, вы можете просто присоединить отладчик и установить точку останова для метода gc()
?
При этом можно использовать совет call()
вместо execution()
который будет соткать вызывающий клиентский код, а не целевой метод.Таким образом, вам нужно только сплести свой код и все библиотеки, а не JDK.