ตามที่ชื่อบอกไว้: คุณจะทดสอบและเปรียบเทียบการใช้งาน mutexes ใน c ++ อย่างไร?
โดยพื้นฐานแล้วฉันเขียน std :: mutex เหมือนคลาสสำหรับโครงการที่รันบน 2 คอร์ armv7 โดยมีจุดประสงค์เพื่อลดค่าใช้จ่ายในกรณีที่ไม่มีการโต้แย้ง ตอนนี้ฉันกำลังพิจารณาใช้ mutex ที่กล่าวไว้ในที่ต่าง ๆ และสถาปัตยกรรมที่แตกต่างกัน แต่ก่อนที่ฉันจะทำสิ่งนี้
- มันถูกต้องจริง
- ไม่มีกรณีพยาธิวิทยาใดที่มันทำงานได้แย่กว่า std มาตรฐาน :: mutex มาก
เห็นได้ชัดว่าฉันเขียนการทดสอบหน่วยพื้นฐานและมาตรฐานไมโครและทุกอย่างดูเหมือนจะทำงาน แต่ในรหัสแบบมัลติเธรด "ดูเหมือนจะทำงาน" ไม่ได้ให้ความสะดวกสบายมาก
- ดังนั้นมีเทคนิคการวิเคราะห์แบบคงที่หรือแบบไดนามิกหรือไม่?
- ข้อผิดพลาดทั่วไปเมื่อเขียนการทดสอบหน่วยสำหรับคลาส mutex คืออะไร
- สิ่งที่ขอบกรณีทั่วไปควรระวัง (ประสิทธิภาพฉลาด) คืออะไร?
ฉันใช้ไลบรารีมาตรฐานชนิดสำหรับการใช้งานเท่านั้นซึ่งรวมถึงการดำเนินการโหลดและจัดเก็บที่ไม่ต่อเนื่องตามลำดับบน atomics อย่างไรก็ตามฉันสนใจที่จะแนะนำการใช้งานแบบไม่เชื่อเรื่องพระเจ้าเนื่องจากฉันต้องการใช้ชุดทดสอบที่เหมือนกันสำหรับการใช้งานอื่นเช่นกัน