特定の出力 (数値) に対する printf と cout の時間を測定しており、C++ でナノ秒の精度を測定するより良い方法があるかどうか (またはこのコードを改善する必要があるかどうか) を知りたいと考えています。
int rand1 = rand();
auto start = std::chrono::high_resolution_clock::now();
printf("%d", rand1);
auto finish = std::chrono::high_resolution_clock::now();
double secondsPrintf = (double)std::chrono::duration_cast<std::chrono::nanoseconds>(finish-start).count();
auto start1 = std::chrono::high_resolution_clock::now();
std::cout << rand1;
auto finish1 = std::chrono::high_resolution_clock::now();
std::cout << endl; // measuring performance of printing the number, no need for endl (drastically lowers performance)
double secondsCout = (double)std::chrono::duration_cast<std::chrono::nanoseconds>(finish1-start1).count();
chrono の now() 関数は非常に正確だと聞きましたが、これらの操作を実行するためのより良い方法 (またはより効率的で迅速な方法など) はありますか?