I bet Percentile makes a memory allocation at every call. If that's true, it might be helpful if there were a different version where the user can supply a data buffer.