Maybe better still, dump loadFactor  -- only called from this one place where it provides more obscurity than abstraction -- it uses values already used here. Replace with inline integer math:

allocatedTupleCount() - activeTupleCount() > (m_tuplesPerBlock * 3) && loadFactor() < m_compactionThreshold -->  

allocatedTupleCount() - activeTupleCount() > std::max( (m_tuplesPerBlock * 3),  allocatedTupleCount() * (100 - m_compactionThreshold) / 100)  /* using the integer percentage */

This refactoring makes it clearer that the criteria are related to the number of unused tuples -- measured on both an absolute and relative scale.