Советы и приемы JVMTI - PullRequest
       6

Советы и приемы JVMTI

0 голосов
/ 15 декабря 2011

что я хочу сделать, это объединить силу кварца с jvmti. в основном, мой план состоит в том, чтобы использовать jvmti для мониторинга использования памяти и основываться на том, что я буду запускать / выполнять процесс в очереди в зависимости от его приоритета с использованием кварца. я хочу, чтобы каждый процесс выполнялся в рамках подхода «этот процесс будет выполнять это количество временных интервалов», чтобы предотвратить отсутствие ответа и иметь возможность обрабатывать все входящие процессы Java, такие как веб-запрос.

Я не нашел учебника по этой теме нигде (есть минимальный, который я могу найти, но его недостаточно для такого нуба, как я), это комбинация программирования на c и программирования на Java. На данный момент у меня есть netbeans ide с плагином c / c ++, хотя я еще не закончил установку mingw, но думаю, что смогу справиться с этим, а также справочный материал jvmti от orasun.

вы, ребята, можете подсказать мне, что делать? инструменты? Справочные материалы? Существующие аналогичные проекты, которые я могу посмотреть / оформить заказ? я просто хочу ускорить это, и если кто-то здесь имеет подобный опыт, поделится своим опытом.

ура!

1 Ответ

2 голосов
/ 22 декабря 2011

Продолжая свой путь написания агентов jvmti, я столкнулся с этой проблемой:

когда я запускаю свой агент, используя java -agentpath: c: \ path \ to \ agentlibdll \ agentlib.dll javaclass

в подсказке написано "не удается найти Agent_OnLoad". Я гуглил подсказки (я всегда так делаю) и нашел фрагменты информации, которые мне нужно связать вместе, результатом является параметр, который должен присутствовать при сборке агента dll (я использую ОС Windows, IDE netbeans, mingw, msys)

я должен добавить эту строку:

-D_JNI_IMPLEMENTATION_ -g -fno-strict-aliasing -fno-omit-frame-pointer -W -Wall -Wno-unused -Wno-круглые скобки -I. -shared

для свойств проекта (щелкните правой кнопкой мыши)> build> компилятор c и c ++> дополнительные параметры

моя командная строка выглядит так:

gcc -D_JNI_IMPLEMENTATION_ -g -fno-strict-aliasing -fno-omit-frame-pointer -W -Wall -Wno-unused -Wno-круглые скобки -I. -shared -shared -o dist / Debug / MinGW-Windows / libjvmticallbackc.dll build / Debug / MinGW-Windows / jvmticallbackc.o -L ../../ jdk.1.7.0 / lib -ljawt -ljvm

Я просто подумал, что должен поделиться тем, что нашел.

...