public void startCollectingTurn(int pagesToCollect,
                                    int totalPagesCount) {
      if (pagesToCollect <= 0) {
        throw new IllegalArgumentException("pagesToCollect(=" + pagesToCollect + ") must be > 0");
      }
      if (totalPagesCount < 0) {
        throw new IllegalArgumentException("totalPagesCount(=" + totalPagesCount + ") must be >= 0");
      }
      this.maxPagesToCollect = Math.max(
        pagesToCollect,
        totalPagesCount * lowUsefulnessThresholdEstimator.percentileToEstimate() / 100 + 1
      );

      int listsSizeEstimation = Math.max(pagesToCollect / 2, 32);
      pagesForReclaimDirty = new ArrayList<>(listsSizeEstimation);
      pagesForReclaimNonDirty = new ArrayList<>(listsSizeEstimation);
    }
public void startCollectingTurn(int pagesToCollect,
                                    int totalPagesCount)