I have spent some time refactoring Sort algorithm, it should be now 15% - 30% faster and more resistant to "bad" input data (we are now using median of 3 and up to 2 partitioning reattempts with Random (mersene twister based) choice of new 3 elements to get the new pivot).