Saya sedang membangun proyek yang membandingkan beberapa metode untuk singleton dalam hal kecepatan.
Apa yang saya coba lakukan adalah meminta pengguna memasukkan berapa kali mereka ingin menjalankan setiap metode, mengulanginya, dan menghitung detak CPU.
Masalahnya tebal CPU semuanya 0. Apa yang harus saya lakukan?
Ini kode saya:
int numOfCalls;
cout << "How many calls do you want for each?";
cin >> numOfCalls;
clock_t beg, end;
beg = clock();
for (size_t i = 0; i != numOfCalls; i++)
Object* p = GofFixed::instance_GofFixed();
end = clock();
cout << (beg-end) / CLOCKS_PER_SEC << endl;
beg = clock();
for (size_t i = 0; i != numOfCalls; i++)
Boost::instance_Boost();
end = clock();
cout << (beg - end) / CLOCKS_PER_SEC << endl;
clock()
memberikan beberapa ukuran waktu prosesor, tetapi mungkin tidak mewakili detak CPU 2) tipeclock_t
danCLOCKS_PER_SECOND
mungkin tipe bilangan bulat, sehingga ekspresi pembagian Anda kemungkinan terpotong 3) tolok ukur Anda cukup sederhana, sehingga mungkin menjadi subjek ke pengoptimal yang menghilangkan banyak atau semua iterasi loop. - person Michael Burr   schedule 28.05.2015for
seluruhnya karena Anda tidak pernah melakukan apa pun dengannya atau hasilnya. - person Alejandro   schedule 28.05.2015main:
. Build yang dioptimalkan bahkan tidak mencapai loop for (saya mengubah fungsinya sedikit, karena saya tidak memiliki akses keGofFixed::
), tetapi idenya sama. - person Alejandro   schedule 28.05.2015