C /C++で高精度に実行時間を測定
高精度タイマーを作成するには、クロノライブラリを使用できます。このライブラリには高解像度の時計があります。これはナノ秒単位で数えることができます。
このプログラムでは、実行時間がナノ秒単位で表示されます。最初に時間値を取り、最後に別の時間値を取り、その差を見つけて経過時間を取得します。ここでは、空白のループを使用して、エフェクトを一時停止することがあります。
例
#include <iostream> #include <chrono> typedef std::chrono::high_resolution_clock Clock; main() { auto start_time = Clock::now(); for(int i = 0; i<200000000; i++ ){ //create one empty loop ; } auto end_time = Clock::now(); std::cout << "Time difference: " << std::chrono::duration_cast<std::chrono::nanoseconds>(end_time - start_time).count() << " nanoseconds" << std::endl; }
出力
Time difference: 536395307 nanoseconds
-
C /C++でのバークレーのアルゴリズム
バークレーのアルゴリズムは、分散システムのクロック同期に使用されるアルゴリズムです。このアルゴリズムは、分散ネットワークの一部またはすべてのシステムにこれらの問題のいずれかがある場合に使用されます- A.マシンには正確なタイムソースがありません。 B.ネットワークまたはマシンにUTCサーバーがありません。 分散システム 物理的に分離されているが、ネットワークを使用して相互にリンクされている複数のノードが含まれています。 バークレーのアルゴリズム このアルゴリズムでは、システムはノードをマスター/リーダーノードとして選択します。これは、サーバーのプールノードから実行され
-
C++で3nスライスのピザ
さまざまなサイズの3nスライスのピザがあるとすると、私と2人の友人は次のようにピザのスライスを取ります- ピザのスライスを選びます。 友達のアマルが私のピックの反時計回りに次のスライスをピックします。 友達のBimalが、私のピックの時計回りに次のスライスをピックします。 ピザのスライスがなくなるまで、これらの手順を繰り返します。 ピザスライスのサイズは、時計回りの円形配列スライスで表されます。可能な最大のスライスサイズの合計を見つける必要があります。 したがって、入力が[9,8,6,1,1,8]のような場合、 次に、各ターンでサイズ8のピザスライスを選