หากแกนประมวลผลเสมือนที่สองได้รับอนุญาตให้มีส่วนร่วมเมื่อก่อนอื่นจะติดอยู่ก็จะดีกว่าไม่ดังนั้นคุณจะได้รับงานพิเศษเล็กน้อย (อย่างน้อย)
คำถามจะกลายเป็น: เมื่อมีสองหัวข้อที่แตกต่างกันทำให้หนึ่งทำงานแย่ลง? การคาดคะเนสาขาและการอ้างอิงระหว่างคำแนะนำจะไม่เปลี่ยนแปลง กำลังรอการเข้าถึงหน่วยความจำทันที ... เธรดทั้งสองจะแย่งชิงการเข้าถึงหน่วยความจำทั้งในการใช้แคชและแบนด์วิดท์
หากคุณมี CPU บางตัวที่ทำงานกับ HT และอื่น ๆ ไม่ได้หมายความว่าคุณจะกำหนดเธรดเฉพาะให้กับประเภทหนึ่งหรืออีกประเภทหนึ่ง ฉันคิดว่าไม่ได้: โปรแกรมของคุณจะรันเธรดของพวกเขาบนคอร์เสมือนแบบสุ่ม ดังนั้นการแยกการกำหนดค่าช่วยได้อย่างไร เนื่องจาก CPU แต่ละตัวมีแคชของตัวเองสิ่งเดียวที่ส่งผลกระทบนั้นเกิดจากแบนด์วิดท์หน่วยความจำและภาระการเชื่อมโยงกันของแคช
โดยทั่วไปแล้วคุณจะไปถึงจุดที่มีบางสิ่งมากกว่าที่คุณสามารถทำได้มีราคาแพงกว่าการปล่อยให้หน่วยประมวลผลของ CPU บางส่วนทำงานโดยไม่ได้ใช้งาน สิ่งนี้ไม่ได้ขึ้นอยู่กับจำนวนเธรดโดยตรง แต่ขึ้นอยู่กับสิ่งที่เธรดกำลังทำและสถาปัตยกรรมหน่วยความจำโดยละเอียดและความแตกต่างของประสิทธิภาพของส่วนประกอบต่าง ๆ
ไม่มีคำตอบง่ายๆ แม้จะมีโปรแกรมเฉพาะในใจเครื่องอาจแตกต่างจากคนที่เกี่ยวข้องกับประสบการณ์ของตนเอง
คุณต้องลองด้วยตัวคุณเองและวัดว่าอะไรเร็วที่สุดด้วยการทำงานเฉพาะบนเครื่องนั้น ๆ และแม้กระนั้นก็อาจมีการเปลี่ยนแปลงด้วยการปรับปรุงซอฟต์แวร์และการใช้งานเมื่อเวลาผ่านไป
ลองดูที่ปริมาณที่ 3 ของความโกรธของผลงานชิ้นโบแดง หากคุณดูอย่างละเอียดในโปรเซสเซอร์บางตัวคุณสามารถค้นหาทรัพยากรที่ จำกัด ได้ในขั้นตอนขั้นสูงที่จำเป็นในการเรียกใช้โค้ด คุณต้องค้นหากรณีที่การส่งข้อความมากเกินไปทำให้การดำเนินการช้าลงซึ่งตรงข้ามกับการไม่ทำงานมากขึ้น โดยทั่วไปนั่นหมายถึงการแคชบางประเภท และตำแหน่งที่แบ่งใช้ทรัพยากรระหว่างเธรด
เครื่องวัด CPU หมายถึงอะไร: รายงานทุกครั้งที่ไม่ได้ใช้งานด้ายที่ไม่ได้ใช้งาน ทั้งเธรดแบบลอจิคัลที่กำหนดให้กับคอร์จะไม่ได้ใช้งานแม้ว่างานจริงที่ทำกับหนึ่งในนั้นอาจมีขนาดเล็ก เวลาที่ใช้กับไปป์ไลน์ติดอยู่สองสามรอบจนกว่าผลลัพธ์จะพร้อมหน่วยความจำถูกนำมาใช้การดำเนินการปรมาณูไม่พอใจ ฯลฯ ก็ไม่ทำให้เธรดถูกจัดวางเป็น "ไม่พร้อม" ดังนั้นจึงจะไม่ว่าง และเวลายังคงแสดงว่าไม่ใช้งาน การรอ RAM จะไม่แสดงเป็นว่าง มีเพียงบางอย่างเช่น I / O ที่จะทำให้บล็อกเธรดและหยุดการชาร์จเวลาเข้าหามัน โดยทั่วไประบบปฏิบัติการ mutex จะทำเช่นนั้นแต่ด้วยการเพิ่มขึ้นของระบบมัลติคอร์ที่ไม่เป็นที่แน่นอนอีกต่อไปเนื่องจาก "spinlock" จะไม่ทำให้เธรดกลับไปอยู่บนชั้นวาง
ดังนั้นซีพียูเมตร 100% ไม่ได้หมายความว่าทุกอย่างจะราบรื่นหาก CPU มักติดค้างอยู่เพื่อรอหน่วยความจำ จำนวนแกนประมวลผลแบบลอจิคัลที่น้อยลงแสดง 90% เป็นไปได้มากที่จะทำงานให้เสร็จมากขึ้นเนื่องจากจะเสร็จสิ้นการบดตัวเลขและตอนนี้กำลังรอแผ่นดิสก์อยู่
ดังนั้นไม่ต้องกังวลกับตัววัด CPU ดูที่ความคืบหน้าจริงทำเท่านั้น