Как профилировать выполнение сервера RDF4J?

Как я указал в другом посте, у меня возникли проблемы с некоторыми конструкторами SPIN, занимающими слишком много времени для выполнения довольно ограниченных данных. Я думал, что выберу другой подход и посмотрю, смогу ли я профилировать выполнение конструкторов, чтобы понять, на что конкретно они тратят слишком много времени.

Как я могу профилировать выполнение конструкторов под RDF4J Server? Я инстанцирую через обновление SPARQL (INSERT DATA) запросы. Вот системная информация о RDF4J:

RDF4J Краткое описание рабочего места

Я попытался профилировать сервер Tomcat, на котором работает сервер RDF4J, используя jvisualvm.exe, но я не получил много понимания. В идеале я хотел бы перейти к уровню класса / метода в RDF4J, чтобы я мог опубликовать более подробный запрос о помощи по проблеме медленного выполнения или, возможно, исправить свои запросы, чтобы они были более эффективными.

Итак, вот версия Java Visual VM:

Информация о версии Java Visual VM

RDF4J работает под Apache Tomcat 8.5.5:

введите описание изображения здесь

Я вижу обзорную информацию о Tomcat:

введите описание изображения здесь

Я также вижу вкладку монитора и темы:

введите описание изображения здесь

введите описание изображения здесь

ОДНАКО, что я действительно хочу увидеть, так это профилировщик, чтобы я мог видеть, где мои медленные запросы тратят так много времени. Это зависит от калибровки, поскольку у меня нет профилировщика, откалиброванного для Java 1.8.

введите описание изображения здесь

Эта попытка подключить окно будет продолжаться бесконечно. Отмена приводит к сообщению "Выполнение калибровки", которое фактически ничего не делает и является тупиковым зависанием, требующим уничтожения Java VisualVM.

введите описание изображения здесь

После убийства Java Visual VM и перезапуска и просмотра параметров -> Профилирование -> Данные калибровки я вижу, что только в Java 7 имеются данные калибровки.

введите описание изображения здесь

Я попытался переключить Tomcat для работы на Java 7, и это сработало:

введите описание изображения здесь

Профилировщик придумал Tomcat:

введите описание изображения здесь

Однако, когда я попытался получить доступ к рабочей среде RDF4J, пока Tomcat работал на Java 7, я не смог запустить рабочую среду:

введите описание изображения здесь

Итак, я все еще застрял. Похоже, что RDF4J требует Tomcat, работающий под Java 1.8, а не 1.7. Я не могу профилировать под Java 1.8.

Я видел другие посты по этой проблеме с Java VisualVM, но, похоже, одно из применимых решений заключается в том, чтобы привести все в среду разработки (например, Eclipse) и динамически вызывать профилировщик с точкой останова отладчика, как только целевой код выполняется под Java 1.8, Я не настроен так делать с Tomcat и RDF4J и мне нужны указатели. Мое намерение состояло не в том, чтобы стать вкладчиком Tomcat или RDF4J (потому что мои задачи не позволяют этого... мне бы не заплатили за это время), а скорее, чтобы получить конкретную информацию о том, что занимает так много времени для моего конструктора SPIN (s) с точки зрения серверных классов RDF4J, а затем обратитесь за помощью к сообществу разработчиков RDF4J на gitub.

Можно ли обойти калибровку Java VisualVM? Могу ли я загрузить файл или каталог калибровки где-нибудь для использования Java VisualVM вместо попытки измерить данные калибровки, которые потерпели неудачу? Меня интересует только относительная загрузка классов процессором, а не абсолютные показатели, и мне не нужно сравнивать результаты измерений на других машинах.

Благодарю.

0 ответов

Другие вопросы по тегам