N3376から:
20.11.7.1 [time.clock.system] / 1:
  クラスのオブジェクトはsystem_clock、システム全体のリアルタイムクロックからの実時間を表します。
20.11.7.2 [time.clock.steady] / 1:
  クラスのオブジェクトは、物理的な時間の進行に伴ってsteady_clock値がtime_point減少することのないクロックと、time_pointリアルタイムに比べて一定の速度で値が進行するクロックを表します。つまり、クロックを調整できない場合があります。
20.11.7.3 [time.clock.hires] / 1:
  クラスのオブジェクトはhigh_resolution_clock、ティック周期が最も短いクロックを表します。high_resolution_clock同義語かもしれsystem_clockかsteady_clock。
たとえば、システム全体の時計は夏時間などの影響を受ける可能性があり、その時点で将来のある時点でリストされている実際の時刻は、実際には過去の時刻になる可能性があります。(たとえば、米国では、秋の時間が1時間戻るので、同じ時間が「2回」経験steady_clockされます)ただし、そのようなことに影響を受けることは許可されていません。
この場合の「安定した」についての別の考え方は、20.11.3 [time.clock.req] / 2の表で定義されている要件にあります。
  表59でC1、C2はクロックタイプを示しています。t1およびt2はC1::now()、コールが戻るt1前にコールが戻る場所から返される値で、t2これらの両方のコールがの前に行われC1::time_point::max()ます。[注:これはC1、t1との間でラップしなかったことを意味しt2ます。—エンドノート]  
  
  式:C1::is_steady
  戻り値:const bool
  操作上のセマンティクス:trueif t1 <= t2が常にtrueであり、クロックの刻みの間の時間が一定である場合、それ以外の場合false。
それが標準の違いです。
ベンチマークを行う場合std::high_resolution_clockは、プラットフォームがQueryPerformanceCounterこのクロックに高解像度タイマー(Windowsなど)を使用している可能性が高いため、最善の策はになるでしょう。ただし、ベンチマークを行う場合は、プラットフォームごとに異なる方法で処理するため、ベンチマークにプラットフォーム固有のタイマーを使用することを検討する必要があります。たとえば、一部のプラットフォームでは、(同じCPUで実行されている他のプロセスとは無関係に)プログラムに必要な実際のクロック数を決定する手段が提供される場合があります。さらに良いことに、実際のプロファイラーを手に入れ、それを使用してください。