Загрузить XML для каждого запроса - PullRequest
1 голос
/ 25 января 2010

Мое приложение загружает XML и обновляет элементы XML для каждого запроса.

У меня от 10 до 20 запросов одновременно, процесс загрузки xml занимает некоторое время для каждого запроса, потому что он находится в синхронизированном блоке.

Размер xml составляет 500 КБ и используется синтаксический анализатор DOM (устаревший код).

Есть ли способы улучшить производительность?

Ответы [ 3 ]

1 голос
/ 29 января 2010

Я заменил парсер DOM на парсер Stax.Решил мою проблему.

VTD-XML быстрее и эффективнее использует память.Однако ... Я очень сомневаюсь в необходимости для анализа XML-файла при каждом запросе.Кэширование его в области приложения с использованием ServletContextListener и сохранение кэшированного содержимого каждую минуту или около того с использованием TimerTask будет более эффективным.

1 голос
/ 25 января 2010

Не зная больше о вашем приложении, других потребителях данных XML или о контроле, который вы имеете над своей средой, вы можете рассмотреть вопрос о сохранении данных на сервере приложений (это один и тот же файл или набор разных файлов, каждый 500 КБ?) И запуск периодического задания на копирование для отправки обновленной копии обратно в исходный источник с разумным интервалом.

0 голосов
/ 29 января 2010

Я заменил парсер DOM на парсер Stax. Решил мою проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...