กลับไปหน้าบทความ

อ่าน 1 นาที

การเจาะรูแบบห่วง

การเจาะลูป เป็น เทคนิค การคำนวณโดยประมาณ ที่ช่วยให้สามารถข้ามการวนซ้ำบางส่วนของลูปได้เป็นประจำ [ 1 ] [ 2 ] [ 3 ]

การเจาะรูแบบห่วง

การเจาะลูปเป็น เทคนิค การคำนวณโดยประมาณที่ช่วยให้สามารถข้ามการวนซ้ำบางส่วนของลูปได้เป็นประจำ[ 1 ] [ 2 ] [ 3 ]

วิธีการนี้อาศัยพารามิเตอร์ เพียงตัวเดียว คืออัตราการข้ามขั้นตอน (perforation rate ) ซึ่งสามารถตีความได้ว่าเป็นจำนวนรอบการทำซ้ำที่จะข้ามไปในแต่ละครั้ง หรือจำนวนรอบการทำซ้ำที่จะต้องดำเนินการก่อนที่จะข้ามไปหนึ่งรอบ

รูปแบบต่างๆ ของการเจาะลูป ได้แก่ การข้ามการวนซ้ำอย่างแน่นอนในช่วงเวลาปกติ การข้ามการวนซ้ำที่จุดเริ่มต้นหรือจุดสิ้นสุดของลูป และการข้ามการวนซ้ำแบบสุ่มตัวอย่าง คอมไพเลอร์อาจเลือกรูปแบบการเจาะลูปในระหว่างการคอมไพล์ หรืออาจมีเครื่องมือที่ช่วยให้ระบบรันไทม์สามารถปรับกลยุทธ์การเจาะลูปและอัตราการเจาะลูปได้อย่างเหมาะสมเพื่อให้บรรลุเป้าหมายความถูกต้องตั้งแต่ต้นจนจบ

เทคนิคการเจาะด้วยห่วงถูกพัฒนาขึ้นครั้งแรกโดยศาสตราจารย์ Martin C. Rinard จาก MIT และนักวิจัยในกลุ่มของเขา ได้แก่ Henry Hoffmann, Sasa Misailovic และ Stelios Sidiroglou

ตัวอย่างโค้ด

ตัวอย่างต่อไปนี้แสดงผลลัพธ์ของการเจาะลูปที่นำไปใช้กับซอร์สโค้ดที่มีลักษณะคล้ายภาษา ซี นี้

for ( int i = 0 ; i < N ; i ++ ) { // ทำสิ่งต่างๆ}

ข้ามการวนซ้ำnครั้งในแต่ละครั้ง

for ( int i = 0 ; i < N ; i ++ ) { // ทำสิ่งต่างๆi = i + skip_factor ; }

ข้ามการวนซ้ำหนึ่งครั้งหลังจากn

จำนวนอินทิก รัล = 0 ;สำหรับ( int i = 0 ; i < N ; i ++ ) { ถ้าcount == skip_factor { count = 0 ; } มิเช่นนั้น{ // ทำสิ่งต่างๆcount ++ ; } }

ดูเพิ่มเติม

  1. ^ Henry Hoffmann, Sasa Misailovic, Stelios Sidiroglou, Anant Agarwal, Martin Rinard "การใช้การเจาะรหัสเพื่อปรับปรุงประสิทธิภาพ ลดการใช้พลังงาน และตอบสนองต่อความล้มเหลว" รายงานทางเทคนิค MIT CSAIL 2009-042 กันยายน 2009
  2. ^ Sasa Misailovic, Stelios Sidiroglou, Henry Hoffmann, Martin C. Rinard "การกำหนดโปรไฟล์คุณภาพการบริการ" การประชุมวิศวกรรมซอฟต์แวร์นานาชาติครั้งที่ 32 (ICSE 2010) พฤษภาคม 2010
  3. ^ Steilos Sidiroglou, Sasa Misailovic, Henry Hoffmann และ Martin Rinard. "การจัดการความสมดุลระหว่างประสิทธิภาพและความแม่นยำด้วยการเจาะรูแบบวนซ้ำ" ESEC/FSE. กันยายน 2011

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Loop_perforation&oldid=1353928148 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การเจาะรูแบบห่วง

การเจาะลูป เป็น เทคนิค การคำนวณโดยประมาณ ที่ช่วยให้สามารถข้ามการวนซ้ำบางส่วนของลูปได้เป็นประจำ [ 1 ] [ 2 ] [ 3 ]

ตัวอย่างโค้ด

ตัวอย่างต่อไปนี้แสดงผลลัพธ์ของการเจาะลูปที่นำไปใช้กับซอร์สโค้ดที่มีลักษณะคล้ายภาษา ซี นี้

ข้ามการวนซ้ำ n ครั้งในแต่ละครั้ง

for ( int i = 0 ; i < N ; i ++ ) { // ทำสิ่งต่างๆ i = i + skip_factor ; }

ข้ามการวนซ้ำหนึ่งครั้งหลังจาก n

จำนวน อินทิก รัล = 0 ; สำหรับ ( int i = 0 ; i < N ; i ++ ) { ถ้า count == skip_factor { count = 0 ; } มิเช่นนั้น { // ทำสิ่ง ต่างๆ count ++ ; } }