jdbcrunner
クラス Throttle

java.lang.Object
  上位を拡張 jdbcrunner.Throttle

public class Throttle
extends java.lang.Object

スループットの上限値を制御するクラスです。

作成者:
Sadao Hiratsuka

コンストラクタの概要
Throttle(Config config)
          負荷テストの設定を指定してスループット制御オブジェクトを構築します。
 
メソッドの概要
 long getSleepTime(int txType, long txEndTime)
          スループット上限値を維持するための、スリープ時間を求めます。
 void setBaseTime(long time)
          スループットを算出する基準となる時刻を設定します。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

Throttle

public Throttle(Config config)
負荷テストの設定を指定してスループット制御オブジェクトを構築します。

パラメータ:
config - 負荷テストの設定
メソッドの詳細

setBaseTime

public void setBaseTime(long time)
スループットを算出する基準となる時刻を設定します。

このメソッドはスレッドセーフです。

パラメータ:
time - スループットを算出する基準となる時刻

getSleepTime

public long getSleepTime(int txType,
                         long txEndTime)
スループット上限値を維持するための、スリープ時間を求めます。

  1. これまで実行したトランザクション回数から、 指定したスループットで本来経過しているべき時間を求めexpectedTimeとします。
  2. 実際に経過した時間actualTimeを求め、expectedTime - actualTimeをスリープ時間とします。
  3. スリープ時間が負数の場合は、0とします。
  4. スリープ時間が0、つまりトランザクションが追いついていない状態が一定時間続いていた場合 、スループットを算出する基準となる時刻およびトランザクションの実行回数をリセットします 。

このメソッドはスレッドセーフです。

パラメータ:
txType - トランザクション種別
txEndTime - トランザクション終了時刻
戻り値:
スリープ時間