Có tiêu chuẩn nào để so sánh thời gian chạy thử nghiệm không?


10

Hoàn cảnh của tôi

Tôi đang viết một bài báo trình bày một mô-đun phần mềm tôi đã phát triển và tôi muốn so sánh thời gian chạy của nó với các mô-đun khác cho cùng một nhiệm vụ. Tôi nhận thức được những hạn chế của các thử nghiệm thời gian chạy , nhưng xin vui lòng giả sử rằng không có cách nào xung quanh nó trong trường hợp của tôi. (Tôi có thể và suy luận một số tính chất trên lý thuyết, nhưng nó không đủ cho tất cả mọi thứ.)

Các kịch bản cụ thể tôi muốn sử dụng để đo điểm chuẩn có hai tham số: độ phức tạp  của vấn đề và hạt giống ngẫu nhiên  r xác định vấn đề chi tiết. Chủ yếu tôi muốn thể hiện sự phụ thuộc vào  n . Theo nghiên cứu sơ bộ và lý thuyết, ảnh hưởng của r đến thời gian chạy là nhỏ hoặc không đáng kể. Một nhiệm vụ duy nhất mất tối đa mười phút để hoàn thành.nrnr

Câu hỏi thực tế

Tôi đang tìm kiếm một số thủ tục thường được chấp nhận hoặc được công bố để thực hiện các thí nghiệm như vậy hoặc ít nhất là một danh sách các cạm bẫy phổ biến (được công bố lý tưởng).

Những gì tôi tìm thấy cho đến nay

Không có gì. Các tìm kiếm trên Internet cho thấy tất cả các loại kết quả không liên quan, nhưng sau đó tôi có thể không sử dụng thuật ngữ đúng. Bao gồm từ khóa tối thiểu, mà tôi biết là một tiêu chuẩn tốt (xem bên dưới), cũng không giúp được gì.

Làm thế nào tôi sẽ làm điều đó

  • Chạy tất cả các thử nghiệm trên cùng một máy với phần mềm có khả năng can thiệp như GUI bị vô hiệu hóa càng nhiều càng tốt.

  • Chủ đề tất cả các mô-đun cho cùng một lựa chọn các kịch bản, nghĩa là cùng và  r .nr

  • Đối với mỗi kịch bản, kiểm tra các mô-đun khác nhau trực tiếp với nhau theo thứ tự ngẫu nhiên. Nói cách khác, vòng lặp trên các mô-đun khác nhau là vòng lặp trong cùng. Điều này sẽ tránh sai lệch trên các mô-đun khác nhau do dao động chậm của hiệu suất của máy (ví dụ: do thay đổi nhiệt độ). Thứ tự ngẫu nhiên phải tránh sai lệch thông qua các hiệu ứng như bộ đệm hoặc một mô-đun luôn được kiểm tra sau cùng một mô-đun.

  • n


Nó có thể giúp giải thích lý do của bạn tại sao bạn nghĩ rằng "không có cách nào xung quanh nó trong trường hợp của tôi". Nhưng tất nhiên, có lẽ là một câu hỏi và liên kết riêng biệt ở đó bởi vì câu hỏi này được tập trung đủ tốt như nó là.
Apiwat Chantawibul

@Billiska: Tôi không chắc chắn chính xác những gì bạn muốn tôi làm. Tại sao tôi nên giải thích lý do của mình cho cách tiếp cận thử nghiệm trong một câu hỏi riêng biệt? Tôi không có câu hỏi liên quan đến điều này.
Wrzlprmft

Tôi phải không đồng ý với bạn trong thời gian chạy thử nghiệm tối thiểu. Bạn dường như nghĩ rằng có thể chỉ có người hướng lên trên. Có lẽ cũng có thể có người hướng ngoại đi xuống? Nó là điển hình hơn để kiểm tra nhiều số liệu thống kê cùng một lúc, ví dụ, trung bình, trung bình, tối đa. Ai biết họ có thể cho thấy một cái gì đó bạn không mong đợi. Rốt cuộc nó là một thử nghiệm thực nghiệm.
Apiwat Chantawibul

2
Điều này rất rộng; sách có thể được viết về chủ đề này, ví dụ "Hướng dẫn về thuật toán thử nghiệm" của McGeoch. Người ta thậm chí có thể nói bạn đang hỏi, "Có tiêu chuẩn nào để làm khoa học không?". Vì vậy, tôi không chắc chắn rằng đây là phạm vi hợp lý. Bạn có câu hỏi cụ thể hơn?
Raphael

Câu trả lời:


2

"Hướng dẫn về thuật toán thử nghiệm" của CC McGeoch là một tài liệu tham khảo tốt cho

  • Làm thế nào để thiết lập thử nghiệm trên các thuật toán,
  • làm thế nào để giải thích và sử dụng kết quả, và
  • làm thế nào để lặp lại hướng tới kết quả có ý nghĩa hơn nếu cần thiết.

2

Ngoài thời gian đã trôi qua cho mỗi lần chạy, hãy báo cáo giây của chế độ hệ thống và người dùng và tổng số gói IP và tổng số I / O của đĩa, nếu chỉ để xác minh rằng một số số luôn ở mức "thấp" và có tác động không đáng kể đến thời gian đã trôi qua.

Trên https://wiki.freebsd.org/BenchmarkAdvice PHK và những người khác cung cấp lời khuyên tốt, bao gồm

Sử dụng ministat để xem nếu số của bạn là đáng kể. Xem xét việc mua "Hướng dẫn hoạt hình để thống kê"

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.