Как профилировать выполнение развертывания OSGi? - PullRequest
4 голосов
/ 10 марта 2010

Я начинаю разработку пакета OSGi для приложения, которое будет развернуто на устройстве с некоторыми аппаратными ограничениями. Я хотел бы знать, как я могу профилировать выполнение этого пакета, чтобы всегда быть уверенным, что он будет соответствовать его зависимостям в конечном устройстве. Было бы неплохо иметь профилировщик, чтобы знать, сколько памяти использует каждый пакет, локализовать узкие места и сравнивать различные реализации одного и того же сервиса.

Существует ли какой-либо профилировщик для развертываний OSGi или мне следует использовать общий профилировщик Java?

Для разработки я использую Pax runner с Apache felix для запуска пакета и maven для управления проектными зависимостями и сборкой.

1 Ответ

4 голосов
/ 16 марта 2010

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

1) Установка на устройстве: мы разрабатываем в Eclipse и разворачиваем с использованием Equinox. Мы строим с использованием файлов .product в Eclipse. Сделав это, мы получим четкое представление о количестве места на диске / в ПЗУ, которое наша программа займет на устройстве.

2) Для профилирования мы обычно используем YourKit. Есть и другие хорошие профилировщики Java, но мы обнаружили, что этот работает хорошо для нас.

Хорошая техника, которую вы можете использовать, - это создать версию сервисов, которая действует как прокси для реальной службы. Прокси-сервер - это отличное место для вставки временного кода, так что вы можете подсчитать, сколько вызовов было сделано для каждого метода обслуживания, и определить время для каждого вызова. Вы также можете классифицировать временные интервалы на основе аргументов таким образом, чтобы найти неэффективные граничные случаи. Затем, когда вы будете готовы к развертыванию, вы можете удалить прокси.

Удачи.

...