Это выходит за рамки того, что код должен быть реорганизован, чтобы полностью избежать вашей проблемы. Один из способов сделать это - поместить все данные в файле в базу данных хранилища кортежей. Apache couchDB и Intersystems Cache - это две системы, которые вы можете использовать для этого, и они будут гораздо лучше оптимизированы для типа данных, с которыми вы имеете дело.
Если вы действительно застряли с XML-файлом, тогда другой вариант - подсчитать все строки заранее и кэшировать это значение. Каждый раз, когда строка добавляется или удаляется из файла, вы можете добавить или вычесть одну из файла. Кроме того, убедитесь, что вы используете 64-битное целое число, поскольку оно может содержать более 2 ^ 32 строк.