Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengukur Masa Pelaksanaan Fungsi C?

Bagaimanakah Saya Boleh Mengukur Masa Pelaksanaan Fungsi C?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-22 17:01:13155semak imbas

How Can I Measure the Execution Time of a C   Function?

Menentukan Masa Pelaksanaan Fungsi dalam C

Dalam pengaturcaraan C, mengukur masa pelaksanaan fungsi boleh dicapai dengan berkesan. Pustaka Boost.Chrono menawarkan fungsi process_user_cpu_clock(), yang menangkap masa CPU pengguna yang digunakan oleh proses semasa. Fungsi ini, bersama-sama kaedah alternatif, memberikan cerapan berharga untuk pengoptimuman prestasi.

Mengukur Masa CPU dengan Boost.Chrono

Menggunakan process_user_cpu_clock() dalam Boost.Chrono adalah mudah. Berikut ialah contoh:

#include <boost/chrono.hpp>
#include <iostream>

void long_operation() {
  // Simulating a long operation
  boost::chrono::process_user_cpu_clock timer;
  while (timer.seconds() < 1) { }
}

int main() {
  boost::chrono::process_user_cpu_clock start;
  long_operation();
  boost::chrono::process_user_cpu_clock stop;
  std::cout << "Execution time: " << (stop - start).seconds() << " seconds" << std::endl;
  return 0;
}

Kaedah Pengukuran Alternatif

Dalam C 11, std::chrono::high_resolution_clock() daripada pengepala menyediakan pemasa resolusi tinggi. Kod berikut menggambarkan penggunaannya:

#include <chrono>
#include <iostream>

void long_operation() {
  // Simulating a long operation
  std::chrono::high_resolution_clock timer;
  std::this_thread::sleep_for(std::chrono::seconds(1));
}

int main() {
  std::chrono::high_resolution_clock::time_point start = std::chrono::high_resolution_clock::now();
  long_operation();
  std::chrono::high_resolution_clock::time_point stop = std::chrono::high_resolution_clock::now();
  std::cout << "Execution time: " << std::chrono::duration_cast<std::chrono::milliseconds>(stop - start).count() << " milliseconds" << std::endl;
  return 0;
}

Perbandingan Prestasi

Kedua-dua kaedah menawarkan ukuran yang boleh dipercayai. std::chrono::high_resolution_clock() ialah pilihan pilihan untuk mengukur tempoh fungsi tertentu. Boost.Chrono menyediakan ciri tambahan, seperti pemasaan urutan dan pemasa konteks.

Kesimpulan

Dengan menggunakan kaedah ini, pembangun boleh menentukan masa pelaksanaan fungsi dengan berkesan, yang membawa kepada pengoptimuman dan cekap dengan baik Program C.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengukur Masa Pelaksanaan Fungsi C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn