Проблема производительности Java из Windows в Solaris JBoss - PullRequest
3 голосов
/ 31 октября 2009

У меня быстрый вопрос, на который кто-то может ответить. Недавно мы создали библиотеку Java, на которую ссылается веб-служба, работающая на сервере приложений JBoss. Производительность веб-службы на стандартном компьютере с Windows XP удовлетворительная и занимает около 1,5 секунд на весь процесс. Однако при развертывании веб-службы на компьютере Solaris JBoss мы отмечаем значительное снижение производительности, хотя виртуальный сервер, на котором размещается Solaris, гораздо мощнее. Общее время обработки увеличивается до 3,6 секунд, когда можно ожидать гораздо большей общей скорости от Windows-машины. Windows-машина - это простой рабочий стол Pentium, на котором Solaris работает на виртуальном сервере, размещенном на Sun Sparc. Первое, что пришло в голову - это сборщик мусора, так как эта библиотека использует много массивов, массивов и часто выделяет новые объекты. У кого-нибудь был подобный опыт или идеи о том, что может происходить?

С уважением Димитрис

Ответы [ 2 ]

1 голос
/ 31 октября 2009

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

Можете ли вы проверить производительность вашей библиотеки вне среды JBoss? Если вы можете, то это способ начать. После того, как у вас есть тестовый комплект, вы можете начать профилировать отдельные компоненты и подкомпоненты, чтобы увидеть, на что тратится время.

В тестовой среде гораздо проще проводить эксперименты, например отключать сборку мусора или увеличивать начальный и максимальный размеры кучи.

Наблюдения за вашими экспериментами дадут вам новые идеи о том, где искать и какие дальнейшие эксперименты проводить.

1 голос
/ 31 октября 2009

Нет, но я бы посоветовал вам присоединиться к jvisualvm, чтобы узнать, на что тратится время.

Также используйте стандартные инструменты Solaris, такие как iostat и vmstat, чтобы определить, исчерпан ли какой-либо аппаратный ресурс.

...