มีมาตรฐานใดสำหรับการเปรียบเทียบรันไทม์ที่ทดลอง


10

สถานการณ์ของฉัน

ฉันกำลังเขียนบทความที่นำเสนอโมดูลซอฟต์แวร์ที่ฉันพัฒนาและฉันต้องการเปรียบเทียบรันไทม์ของมันกับโมดูลอื่นสำหรับงานเดียวกัน ฉันตระหนักถึงข้อเสียของการทดสอบรันไทม์แต่โปรดสมมติว่าไม่มีทางแก้ไขในกรณีของฉัน (ฉันสามารถและอนุมานคุณสมบัติบางอย่างในทางทฤษฎี แต่มันก็ไม่พอเพียงสำหรับทุกสิ่ง)

สถานการณ์ที่เฉพาะเจาะจงฉันต้องการที่จะใช้สำหรับการเปรียบเทียบมีสองพารามิเตอร์: ความซับซ้อน ของปัญหาและเมล็ดสุ่ม ซึ่งกำหนดปัญหารายละเอียด ส่วนใหญ่ผมต้องการที่จะแสดงให้เห็นการพึ่งพา  nโดยการตรวจสอบเบื้องต้นและทฤษฎีอิทธิพลของต่อรันไทม์มีน้อยหรือไม่สำคัญ งานเดียวใช้เวลาดำเนินการไม่เกินสิบนาทีnRnR

คำถามจริง

ฉันกำลังมองหาขั้นตอนที่เป็นที่ยอมรับหรือเผยแพร่โดยทั่วไปเกี่ยวกับการดำเนินการทดลองดังกล่าวหรืออย่างน้อยรายการของข้อผิดพลาดทั่วไป

สิ่งที่ฉันพบจนถึง

ไม่มีอะไร การค้นหาทางอินเทอร์เน็ตทำให้เกิดผลลัพธ์ที่ไม่เกี่ยวข้องทั้งหมด แต่ฉันอาจไม่ได้ใช้คำศัพท์ที่ถูกต้อง การรวมคำหลักขั้นต่ำซึ่งฉันรู้ว่าเป็นมาตรฐานที่ดี (ดูด้านล่าง) ก็ไม่ได้ช่วยอะไรเช่นกัน

ฉันจะทำอย่างไร

  • ดำเนินการทดลองทั้งหมดในเครื่องเดียวกันด้วยซอฟต์แวร์ที่อาจรบกวนเช่น GUI ถูกปิดใช้งานเท่าที่จะทำได้

  • ขึ้นอยู่กับโมดูลทั้งหมดในการเลือกสถานการณ์เดียวกันคือและ เดียวกันnR

  • สำหรับแต่ละสถานการณ์ทดสอบโมดูลต่าง ๆ โดยตรงหลังจากกันตามลำดับแบบสุ่ม ด้วยคำอื่น ๆ การวนรอบโมดูลที่ต่างกันนั้นเป็นส่วนที่อยู่ด้านในสุด สิ่งนี้ควรหลีกเลี่ยงอคติกับโมดูลที่แตกต่างกันเนื่องจากความผันผวนของประสิทธิภาพของเครื่องช้า (เช่นเนื่องจากการเปลี่ยนแปลงของอุณหภูมิ) ลำดับแบบสุ่มควรหลีกเลี่ยงอคติผ่านเอฟเฟกต์เช่นการแคชหรือหนึ่งโมดูลที่ถูกทดสอบเสมอหลังจากที่เดียวกัน

  • สำหรับแต่ละให้ใช้เวลารันไทม์ขั้นต่ำในหลาย ๆ สถานการณ์ด้วยเมล็ดที่แตกต่างกันเป็นเกณฑ์มาตรฐาน สิ่งนี้ควรหลีกเลี่ยงอคติกับโมดูลที่แตกต่างกันเนื่องจากความผันผวนของประสิทธิภาพการทำงานของเครื่องในระยะเวลาอันสั้นn


มันอาจช่วยอธิบายเหตุผลของคุณว่าทำไมคุณถึงคิดว่า "ในกรณีของฉันไม่มีทาง" แต่แน่นอนว่าอาจเป็นคำถามแยกต่างหากและเชื่อมโยงไปที่นั่นเพราะคำถามนี้มุ่งเน้นไปที่พอแล้ว
อภิวัฒน์จันทวิบูลย์

@Billiska: ฉันไม่แน่ใจว่าสิ่งที่คุณต้องการให้ฉันทำ ทำไมฉันจึงควรอธิบายเหตุผลของฉันสำหรับวิธีการทดลองในคำถามแยกต่างหาก ฉันไม่มีคำถามเกี่ยวกับเรื่องนี้
Wrzlprmft

ฉันต้องไม่เห็นด้วยกับคุณในการทำการทดสอบซ้ำขั้นต่ำ คุณดูเหมือนจะคิดว่าอาจมี outliner ขึ้นไปเท่านั้น เป็นไปได้ไหมที่จะมีโครงตัวลงด้านล่าง? เป็นเรื่องปกติมากขึ้นในการตรวจสอบสถิติหลายรายการในเวลาเดียวกันเช่นค่าเฉลี่ยมัธยฐานและค่าสูงสุด ใครจะรู้ว่าพวกเขาอาจแสดงสิ่งที่คุณไม่คาดคิด เป็นการทดลองเชิงประจักษ์หลังจากทั้งหมด
อภิวัฒน์จันทวิบูลย์

2
นี่เป็นวงกว้างมาก หนังสือเล่มนี้สามารถเขียนเกี่ยวกับหัวข้อเช่น "แนวทางการทดลองขั้นตอน" ของ McGeoch อาจมีคนบอกว่าคุณกำลังถามว่า "มีมาตรฐานในการทำวิทยาศาสตร์หรือไม่" ดังนั้นฉันไม่แน่ใจว่านี่เป็นขอบเขตที่สมเหตุสมผล คุณมีคำถามเพิ่มเติมหรือไม่
กราฟิลส์

2
ที่เกี่ยวข้องอย่างอิสระ: cs.stackexchange.com/q/39597/755 , cs.stackexchange.com/q/29854/755 , cs.stackexchange.com/q/74178/755
DW

คำตอบ:


2

CC McGeoch ของ "คำแนะนำเกี่ยวกับอัลกอริทึมทดลอง" เป็นการอ้างอิงที่ดีสำหรับ

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

2

นอกเหนือจากเวลาที่ผ่านไปสำหรับการรันแต่ละครั้งรายงานวินาทีของโหมดผู้ใช้ & ระบบและแพ็กเก็ต IP ทั้งหมดและดิสก์ I / Os ทั้งหมดหากเพียงเพื่อตรวจสอบว่ามีบางหมายเลข "ต่ำ" อย่างสม่ำเสมอและมีผลกระทบเล็กน้อยต่อเวลาที่ผ่านไป

ในhttps://wiki.freebsd.org/BenchmarkAdvice PHK และอื่น ๆ ให้คำแนะนำที่ดีรวมถึง

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.