У меня был некоторый опыт работы с большими файлами XML, но, возможно, не с 5 ГБ.
Если это существующая система, использующая XML, подумайте, прежде чем переходить с XML на какой-либо другой формат, потому что само изменение может вызвать больше проблем, чем его ценность. Сжатие файла будет иметь большое значение для передачи по сети. XML-файл в формате gzip может быть столь же эффективным, как и собственный двоичный формат.
Вероятным узким местом будет синтаксический анализ и обработка файла. Если «записи» XML не зависят друг от друга (например, если это длинный список типов XML), то вы сможете использовать потоковый анализатор XML, чтобы избежать загрузки всего в память. Также рассмотрите возможность использования «не проверяющего» синтаксического анализатора (или отключения проверки) для повышения производительности.
Если вы можете выполнить какую-либо обработку файлов в XSLT, то вы можете обнаружить, что это работает лучше, чем синтаксический анализ всего файла в программе для манипуляции.
В зависимости от времени передачи по сети рассмотрите возможность использования надежного сетевого транспорта, такого как FTP или BitTorrent. Если HTTP теряет соединение, возможно, вам придется начать заново.