Я пытаюсь использовать ASM, чтобы подсчитать индивидуальные инструкции байткода, выполненные в рамках одной функции, для построения гистограммы. Я вижу, что есть инструмент ByCounter, который может выполнять аналогичную задачу, но у меня нет доступа к исходному коду.Выполнено выполнение отдельных индивидуальных инструкций байткода Java
Я понимаю, что библиотека байт-кода Java asm может обрабатывать классы, поля, методы, но примеры для настройки отдельной инструкции байткода не найдены (хотя из ByCounter - это оказывается возможным).
Если инструмент, подобный JVMTI, лучше подходит, то это также полезная информация!
Благодарим за помощь!
Что вы собираетесь использовать эту информацию? Если вы пытаетесь профилировать или оптимизировать программу, байт-код не является тем, что JIT на самом деле закончит работать - он перепишет все это в совершенно другой по-разному собственный код во время выполнения. –
Не могли бы вы просто получить доступ к ['инструкциям' метода] (http://asm.ow2.org/asm50/javadoc/user/org/objectweb/asm/tree/MethodNode.html#instructions) и проверить флажок [' size'] (http://asm.ow2.org/asm50/javadoc/user/org/objectweb/asm/tree/InsnList.html#size--)? –
@LouisWasserman Я хочу посмотреть, сколько команд выполняется в методе по различным путям кода. Я согласен, что это несовершенный метод, но начать получать некоторые базовые показатели. – Mike