When preprocessing objects batch will iterate and request a identifier one at a time. For large sets this can cause n requests which can be time consuming.
Preprocessing a large set of objects takes less time as the amount of requests to Fedora drops, as well as merging in PHP is eliminated.
This can be accomplished in one getIdentifier call. Similarly, the current structure does some array_merging and passing around of arrays which does not get used upstream anywhere again which slows down preprocess time.
Is a couple of approaches that can be done here, can either update the existing batch interface (scan batch/batch proper) to utilize this or extend a new version of the preprocessor with these improvements in place.