Wordpress. Оптимизация своего плагина?
Все долгие операции нужно запускать из консоли. Для консоли времени выполнения нет.
самый простой, возможно не самый красивый способ  - писать куда то прогресс выполнения задачи.
1. забрать и распарсить xml - это быстро, после этого этапа скрипт уже знает сколько позиций ему предстоит обработать. (так ведь?)
2. обрабатываем в цикле позиции, после обработки каждой позиции пишем ее ID в таблицу (файл).
3. скрипт перезапускаем до тех пор пока циферка из шага 2 не сравняется с количеством позиций из принятого xml (это количество можно так же посчитать один раз на шаге 1 и больше не вычислять.)