คำถามติดแท็ก performance

2
ประสิทธิภาพของ microkernel เทียบกับ kernel แบบ monolithic
microkernel ใช้ไดรเวอร์ทั้งหมดเป็นโปรแกรมพื้นที่ผู้ใช้และใช้คุณสมบัติหลักเช่น IPC ในเคอร์เนลเอง เคอร์เนลเสาหินอย่างไรก็ตามใช้ไดรเวอร์เป็นส่วนหนึ่งของเคอร์เนล (เช่นทำงานในโหมดเคอร์เนล) ฉันได้อ่านการอ้างสิทธิ์บางอย่างว่า microkernels นั้นช้ากว่า monolithic kernels เนื่องจากพวกเขาจำเป็นต้องจัดการกับข้อความที่ส่งระหว่างไดรเวอร์ในพื้นที่ของผู้ใช้ มันเป็นเรื่องจริงเหรอ? เป็นเวลานานเมล็ดส่วนใหญ่เป็นเสาหินเนื่องจากฮาร์ดแวร์ช้าเกินกว่าที่จะเรียกใช้ไมโครเคอร์เนลได้อย่างรวดเร็ว อย่างไรก็ตามขณะนี้มีไมโครเคิลและไฮบริดหลายเมล็ดเช่น GNU / Hurd, Mac OS X, สาย Windows NT เป็นต้น แล้วมีอะไรเปลี่ยนแปลงเกี่ยวกับประสิทธิภาพของ microkernels บ้าง? คำติชมของ microkernels นี้ยังใช้ได้ในปัจจุบันหรือไม่?

6
การหาค่า XOR สูงสุดของตัวเลขสองตัวในช่วงเวลาหนึ่ง: เราจะทำได้ดีกว่าสมการกำลังสองหรือไม่?
สมมติว่าเรากำลังได้รับสองหมายเลขและและที่เราต้องการที่จะหาสำหรับL \ le i, \, J \ le Rlllrrrmax(i⊕j)max(i⊕j)\max{(i\oplus j)}l≤i,j≤rl≤i,j≤rl\le i,\,j\le r อัลกอริทึมnaïveเพียงตรวจสอบคู่ที่เป็นไปได้ทั้งหมด เช่นในทับทิมเรามี: def max_xor(l, r) max = 0 (l..r).each do |i| (i..r).each do |j| if (i ^ j > max) max = i ^ j end end end max end ฉันรู้สึกว่าเราสามารถทำได้ดีกว่าสมการกำลังสอง มีอัลกอริทึมที่ดีกว่าสำหรับปัญหานี้หรือไม่?

4
ทำไมเราต้องแลกเปลี่ยนนามธรรมเพื่อความรวดเร็ว
ทำไมภาษาระดับสูงถึงไม่สามารถเข้าถึงภาษาระดับต่ำกว่าในแง่ของความเร็วได้? ตัวอย่างภาษาระดับสูง ได้แก่ Python, Haskell และ Java ภาษาระดับต่ำจะยากกว่าที่จะนิยาม แต่สมมติว่า C. การเปรียบเทียบสามารถพบได้ทั่วอินเทอร์เน็ต1และพวกเขาทั้งหมดเห็นด้วยว่า C นั้นเร็วกว่ามากบางครั้งอาจเป็น 10 หรือมากกว่า11^1 อะไรที่ทำให้ประสิทธิภาพแตกต่างกันมากและทำไมภาษาระดับสูงถึงไม่ทัน ตอนแรกฉันเชื่อว่านี่เป็นความผิดพลาดของคอมไพเลอร์และสิ่งต่าง ๆ จะดีขึ้นในอนาคต แต่ภาษาระดับสูงที่ได้รับความนิยมสูงสุดบางภาษาได้ใช้เวลาหลายสิบปีและพวกเขาก็ยังล้าหลังเมื่อพูดถึงความเร็ว พวกเขาไม่สามารถคอมไพล์คล้ายกับแผนผังไวยากรณ์ C แล้วทำตามขั้นตอนเดียวกันที่สร้างรหัสเครื่องได้หรือไม่ หรือบางทีมันเป็นสิ่งที่จะทำอย่างไรกับไวยากรณ์ของตัวเอง? ตัวอย่าง:11^1 เกมเกณฑ์มาตรฐานภาษาคอมพิวเตอร์ หน้ามาตรฐานของ Julia

5
ทำไมการออกแบบระบบปฏิบัติการถึงสามารถลดการใช้พลังงานได้?
ฉันได้อ่านแล้วว่าระบบปฏิบัติการอย่าง Android และ iOS นั้นได้รับการปรับปรุงให้ดีขึ้นเพื่อปรับปรุงอายุการใช้งานแบตเตอรี่ ความเข้าใจของฉันคือ CPU ดำเนินการจำนวนหนึ่งในเวลาที่กำหนดดังนั้นฉันคิดว่าคุณสามารถเร่งความเร็วแอปพลิเคชันโดยลดจำนวนการดำเนินการที่ต้องการ แต่เนื่องจาก CPU จะยังคงทำงานxในเวลาyซึ่งไม่ควร ส่งผลกระทบต่อพลัง? นอกจากนี้หากกระบวนการใช้ RAM มากกว่าจะใช้พลังงานมากกว่าหรือไม่

3
เหตุใดการค้นหา hashtable (ไม่ชน) จึงเป็นจริง O (1)
คำเตือน: ฉันรู้ว่ามีคำถามที่คล้ายกันทำให้เกิดเสียงที่นี่แล้วและใน Stackoverflow แต่พวกเขาทั้งหมดเกี่ยวกับการชนซึ่งไม่ใช่สิ่งที่ฉันขอ คำถามของฉันคือทำไมการค้นหาน้อยกว่าO(1)ในตอนแรก? สมมติว่าฉันมี hashtable นี้: Hash Content ------------- ghdjg Data1 hgdzs Data2 eruit Data3 xcnvb Data4 mkwer Data5 rtzww Data6 ตอนนี้ฉันกำลังมองหากุญแจสำคัญในการkที่ฟังก์ชั่นกัญชาให้h(k) h(k) = mkwerแต่การค้นหา "รู้" ว่าแฮชmkwerอยู่ที่อันดับ 5 อย่างไร เหตุใดจึงไม่ต้องเลื่อนผ่านปุ่มทั้งหมดO(n)เพื่อค้นหา แฮชไม่สามารถใช้ที่อยู่ฮาร์ดแวร์บางประเภทได้เพราะฉันสูญเสียความสามารถในการย้ายข้อมูล และเท่าที่ฉันรู้ hashtable ไม่ได้ถูกจัดเรียงไว้บนแฮช (แม้ว่าจะเป็นแล้วการค้นหาก็ต้องใช้O(log n))? การรู้จักแฮชช่วยค้นหาสถานที่ที่ถูกต้องในตารางได้อย่างไร

1
ทำไมการใช้ Hyper-threading จึงทำให้ประสิทธิภาพลดลง
ฉันได้อ่านมันในสถานที่ต่าง ๆ เช่นนี้แล้วการทำไฮเปอร์เธรดทำให้ประสิทธิภาพลดลง ฉันไม่สามารถหาสาเหตุหรือวิธีการไฮเปอร์เธรดที่นำไปสู่ความเสื่อมโทรม ทำไมถึงเป็นเช่นนั้นแม้เมื่อ Hyper-threading อนุญาตให้ระบบปฏิบัติการใช้ทรัพยากรฟรีการสลายตัวก็เกิดขึ้น แม้ว่าการวัดประสิทธิภาพจะบ่งบอกถึงการทำเกลียวมากเกินไปว่าเป็นผู้ร้าย แต่ใครบางคนสามารถอธิบายเหตุผลของเรื่องนี้ให้ฉันได้ ขอบคุณ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.