MSXML вызывает исчерпание виртуальной памяти, и в конечном итоге приложение зависает навсегда

у нас проблемы с MSXML,

у нас есть приложение (разработанное в c плюс плюс как расширение isapi (что означает многопоточные запросы)), которое постоянно подвергается воздействию запросов на загрузку и синтаксический анализ xmls. (если перегружено большим количеством XML-файлов для загрузки и анализа, это вызывает проблемы с виртуальной памятью в состоянии отсутствия ответа)

мы используем MSXML4.0. Приложение работает хорошо в течение нескольких дней, и при большом количестве запросов с огромным xmls оно переходит в состояние без перезапуска, что приводит к перезапуску приложения.

Я проверил счетчики памяти и частные байты не так высоки … но виртуальные байты касаются 2 ГБ (на 32-битных окнах), что, я думаю, выходит за верхние пределы, поэтому это вызывает проблемы, и я вижу, что больше памяти не может быть выделено (обнаружены ошибки в обработчик исключений для нового оператора)

Перепробовал все следующие вещи, чтобы сбросить виртуальные байты, но ни один из них не помог, виртуальные байты непрерывно растут, чтобы коснуться 2 ГБ, и в конечном итоге останавливает приложение 🙁

  • заменил MSXML4.0 на MSXML6.0 (не помогло)
  • с MSXML6.0 используется реестр NOFULLGC, установленный как 1 (не помогло)
  • Также пробовал CoFreeUnusedLibraries () перед CoUninitialize () (не помогло)
  • прочитайте несколько статей, в которых говорится, что вместо msxml используйте xmllite (это невозможно, потребуются огромные усилия)

Любая помощь в этом отношении будет по достоинству оценена.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]