protected double getCurrentRate() {
        long rampUp = owner.getRampUpSeconds();
        long hold = owner.getHoldSeconds();
        long steps = owner.getStepsAsLong();
        double throughput = owner.getTargetLevelFactored();
        double timeOffset = rollingTime / 1000.0 - startTime;

        if (timeOffset >= rampUp + hold) {
            return -1; // means no more requests
        }

        if (rampUp == 0 || timeOffset > rampUp) {
            return throughput;
        } else if (steps > 0) {
            double stepSize = throughput / (double) steps;
            double stepLen = rampUp / (double) steps;
            return stepSize * (Math.floor(timeOffset / stepLen) + 1);
        } else {
            double slope = throughput / rampUp;
            return slope * Math.sqrt(2 * scheduledCount / slope);
        }
    }
protected double getCurrentRate ( ) { long rampUp = owner . getRampUpSeconds ( ) ; long hold = owner . getHoldSeconds ( ) ; long steps = owner . getStepsAsLong ( ) ; double throughput = owner . getTargetLevelFactored ( ) ; double timeOffset = rollingTime / 1000.0 - startTime ; if ( timeOffset >= rampUp + hold ) { return - 1 ; } if ( rampUp == 0 || timeOffset > rampUp ) { return throughput ; } else if ( steps > 0 ) { double stepSize = throughput / ( double ) steps ; double stepLen = rampUp / ( double ) steps ; return stepSize * ( Math . floor ( timeOffset / stepLen ) + 1 ) ; } else { double slope = throughput / rampUp ; return slope * Math . sqrt ( 2 * scheduledCount / slope ) ; } }
ported from Taurus PBench module