Чи існує якийсь стандарт для експериментального порівняння часу виконання?


10

Моя ситуація

Я пишу документ, в якому представляю розроблений нами програмний модуль, і хочу порівняти його час виконання з іншими модулями для того ж завдання. Мені відомо про недоліки експериментів під час виконання , але, будь ласка, припустіть, що з огляду на те, що в моєму випадку це неможливо обійти. (Я можу і зробити деякі властивості теоретично, але цього недостатньо для всього.)

Конкретні сценарії, які я хочу використати для тестування, мають два параметри: складність  задачі та випадкове насіння  яке визначає детальну проблему. В основному я хочу показати залежність від  . На основі попередніх розслідувань та теорії, вплив на час виконання незначний або незначний. На виконання одного завдання потрібно не більше десяти хвилин.нrнr

Актуальне питання

Я шукаю якусь загальноприйняту або опубліковану процедуру щодо проведення таких експериментів або, принаймні, список загальних підводних каменів (в ідеалі опублікованих).

Що я знайшов поки що

Нічого. Пошук в Інтернеті виявляє всілякі непов'язані результати, але тоді я, можливо, не використовую правильну термінологію. У тому числі мінімум ключових слів , який, як я знаю, є хорошим стандартом (див. Нижче), також не допомогло.

Як я це зробив би

  • Виконайте всі експерименти на одній машині з можливим втручанням програмного забезпечення, такого як графічний інтерфейс, наскільки це можливо.

  • Підключіть всі модулі до одного і того ж вибору сценаріїв, тобто однакових і  r .нr

  • Для кожного сценарію випробовуйте різні модулі безпосередньо один за одним у випадковому порядку. Іншими словами, петля над різними модулями є найпотаємнішою. Це повинно уникати зміщення різних модулів через повільні коливання продуктивності машини (наприклад, через зміну температури). Випадковий порядок повинен уникати зміщення через такі ефекти, як кешування або один модуль завжди тестується після того ж самого.

  • н


Це може допомогти пояснити ваші міркування, чому ви вважаєте, що "в моєму випадку це неможливо". Але звичайно, мабуть, як окреме питання та посилання там, тому що це питання орієнтоване досить добре, як є.
Apiwat Chantawibul

@Billiska: Я не зовсім впевнений, що ти хочеш від мене. Чому я повинен пояснювати свої міркування експериментального підходу окремим питанням? У мене немає жодного питання з цього приводу.
Wrzlprmft

Я повинен не погодитися з вами, приймаючи мінімальний час повторного експерименту. Ви, здається, думаєте, що може бути лише контур вгору. Чи можна також мати контур вниз? Більш типово вивчати кілька статистичних даних одночасно, наприклад, середню, медіану, макс. Хто знає, що вони можуть показати щось, чого ви не очікували. Адже це емпіричний експеримент.
Apiwat Chantawibul

2
Це дуже широко; На цю тему можуть бути написані книги, наприклад, "Посібник з експериментальної алгоритміки" МакГеоха. Можна навіть сказати, що ви запитуєте: "Чи є стандарт для занять наукою?". Тож я не впевнений, що це обґрунтовано. У вас є більш конкретні запитання?
Рафаель

Відповіді:


2

"Посібник з експериментальної алгоритміки" CC McGeoch є хорошим посиланням

  • як налаштувати експерименти над алгоритмами,
  • як інтерпретувати та використовувати результати, і
  • як перейти до більш значущих результатів, якщо це необхідно.

2

Окрім минулого часу для кожного запуску, повідомте про секунди користувальницького та системного режиму, загального пакету IP та загального дискового вводу / виводу, якщо лише переконатися, що деякі числа стабільно «низькі» та мають незначний вплив на минулий час.

На https://wiki.freebsd.org/BenchmarkAdvice PHK та інші пропонують хороші поради, в тому числі

Використовуйте міністр, щоб побачити, чи ваші цифри значні. Подумайте про придбання "Посібника по статистиці мультфільмів"

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.