У меня есть приложение, которое отвечает за архивирование старых приложений, которое будет выполнять большое количество приложений за раз, и поэтому ему нужно будет работать в течение нескольких дней.
Когда моя компания разработала это, они провели честную проверку производительности на нем, и из-за этого они, похоже, получили приличные номера, но я недавно запускал архив для клиента, и, похоже, он работает очень медленно, и производительность, кажется, ухудшается еще дольше, чем она работает.
Кажется, что нет утечки памяти, поскольку, поскольку я контролирую ее с помощью jconsole, все еще имеется много доступной памяти и, похоже, не уменьшается.
Я заметил, однако, что пространство оставшихся в живых и теневой ген кучи очень быстро заполняются до тех пор, пока не появится сбор мусора и не очистит его, что, кажется, происходит довольно часто, и я не уверен, может ли это быть источником кажущегося замедления.
Приложение работает уже 7 дней 3 часа, и в соответствии с jconsole он потратил 6 часов на сборку мусора (772, 611 коллекций) и 12 часов и 25 минут на уплотнение marksweep (145 940 коллекций).
Это кажется большим количеством времени, потраченного на сбор мусора, и мне просто интересно, если кто-то заглянул во что-то подобное раньше и знает, нормально это или нет?
редактирует
Локальная обработка кажется медленной, например, я просматриваю одну часть в журналах, которая занимает 5 секунд, чтобы извлечь какой-либо xml из конверта SOAP, используя xpath, который затем добавляет в буфер строки вместе с корневым тегом. что все это делает. Я еще не профилировал его, так как это работает на производстве, мне придется либо вытащить данные по сети, либо создать большую тестовую базу в нашей среде разработчиков, которая может закончиться необходимостью.
Запуск Java HotSpot Client VM версии 10.0-b23
На самом деле просто нужна высокая пропускная способность, не настроены какие-либо конкретные параметры сбора мусора, будет выполняться то, что когда-либо было по умолчанию. Не знаете, как найти, какие коллекционеры будут использовать?
Fix
В конце концов, получив профайлер, он решил, что причиной замедления был какой-то код, который постоянно обрезал строки из окна состояния, выводя заявления о регистрации, которые были довольно плохо сделаны. Должно было понять, что сбор мусора был симптомом от постоянного копирования текста статуса в память, а не фактической причины.
Приветственные ребята.