ฉันกำลังสร้างโปรเจ็กต์ที่เปรียบเทียบวิธีการบางอย่างสำหรับซิงเกิลตันในแง่ของความเร็ว
สิ่งที่ฉันพยายามทำคือขอให้ผู้ใช้ป้อนจำนวนครั้งที่พวกเขาต้องการเรียกใช้แต่ละวิธี วนซ้ำ และนับ CPU ติ๊ก
ปัญหาคือ CPU หนาเป็น 0 ทั้งหมด ทำอย่างไรดี?
นี่คือรหัสของฉัน:
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()
ให้การวัดเวลาของโปรเซสเซอร์ แต่อาจไม่แสดงถึงขีดของ CPU 2) ประเภทclock_t
และCLOCKS_PER_SECOND
อาจเป็นประเภทจำนวนเต็ม ดังนั้นนิพจน์การแบ่งของคุณจึงมีแนวโน้มที่จะถูกตัดทอน 3) การวัดประสิทธิภาพของคุณค่อนข้างง่าย ดังนั้นจึงอาจเป็นหัวข้อ ไปยังเครื่องมือเพิ่มประสิทธิภาพซึ่งจะช่วยลดการวนซ้ำหลายรอบหรือทั้งหมด - person Michael Burr   schedule 28.05.2015for
ออกทั้งหมด เนื่องจากคุณไม่เคยทำอะไรกับมันหรือผลลัพธ์เลย - person Alejandro   schedule 28.05.2015main:
. โครงสร้างที่ได้รับการปรับให้เหมาะสมนั้นไปไม่ถึง for loops ด้วยซ้ำ (ฉันเปลี่ยนฟังก์ชั่นขึ้นเล็กน้อยเนื่องจากฉันไม่มีสิทธิ์เข้าถึงGofFixed::
) แต่แนวคิดก็เหมือนเดิม - person Alejandro   schedule 28.05.2015