Çalışma zamanlarını deneysel olarak karşılaştırmak için herhangi bir standart var mı?


10

Benim durumum

Geliştirdiğim bir yazılım modülünü sunan bir makale yazıyorum ve çalışma zamanını aynı görev için diğer modüllerle karşılaştırmak istiyorum. Çalışma zamanı deneylerinin dezavantajlarının farkındayım , ancak benim durumumda bunun hiçbir yolu olmadığını varsayalım. (Bazı özellikleri teorik olarak çıkarabilirim ve yapabilirim, ancak her şey için yeterli değildir.)

Kıyaslama için kullanmak istediğim belirli senaryoların iki parametresi vardır: sorunun karmaşıklığı  ve ayrıntılı sorunu belirleyen rastgele bir tohum  . Temelde bağımlılığı göstermek istiyorum  . Ön araştırmalar ve teoriye göre, çalışma zamanı üzerindeki etkisi küçük veya ihmal edilebilir. Tek bir görevin tamamlanması en fazla on dakika sürer.nrnr

Gerçek soru

Bu tür deneyleri gerçekleştirmek için yaygın olarak kabul edilen veya yayınlanan bazı prosedürleri veya en azından ortak tuzakların bir listesini (ideal olarak yayınlanmış) arıyorum.

Şimdiye kadar bulduğum şey

Hiçbir şey değil. İnternet aramaları, her türlü alakasız sonucu ortaya çıkarır, ancak daha sonra doğru terminolojiyi kullanmıyor olabilirim. İyi bir standart olduğunu bildiğim minimum anahtar kelimeyi dahil etmek (aşağıya bakın) da yardımcı olmadı.

Nasıl yaparım

  • Tüm denemeleri, mümkün olduğunca devre dışı bırakılan GUI gibi potansiyel olarak müdahale eden yazılımlarla aynı makinede gerçekleştirin.

  • Tüm modülleri aynı senaryo seçimine tabi tutun, yani aynı ve  .nr

  • Her senaryo için farklı modülleri birbiri ardına rastgele sırayla test edin. Başka bir deyişle, farklı modüller üzerindeki döngü en içteki modüldür. Bu, makinenin performansındaki yavaş dalgalanmalardan dolayı (örn. Sıcaklık değişimleri nedeniyle) farklı modüllerde yanlılığı önlemelidir. Rastgele sıra, önbellekleme veya bir modülün her zaman aynı modülden sonra test edilmesi gibi etkilerden yanlı olmamalıdır.

  • Her bir , farklı tohumlar olan birkaç senaryo üzerinde asgari çalışma süresini ölçüt olarak alın. Bu, makinenin performansının bireysel çalışmalarını olağanüstü derecede kötü yapan kısa süreli dalgalanmaları nedeniyle farklı modüllere karşı önyargıdan kaçınmalıdır.n


Neden "benim durumumda bunun etrafında bir yol yok" diye düşündüğünüzü açıklamak faydalı olabilir. Ama tabii ki, muhtemelen ayrı bir soru olarak ve orada bağlantı çünkü bu soru olduğu gibi yeterince iyi odaklanmıştır.
Apiwat Chantawibul

@Billiska: Ne yapmamı istediğinden tam olarak emin değilim. Deneysel bir yaklaşımın gerekçesini neden ayrı bir soruda açıklamalıyım? Bununla ilgili sorum yok.
Wrzlprmft

Tekrarlanan denemenin minimum çalışma zamanını kabul etmeme katılmıyorum. Görünüşe göre, sadece yukarı doğru uzanmış olabilir. Ana hatları aşağıya doğru da almak mümkün olabilir mi? Birden fazla istatistiği aynı anda incelemek daha tipiktir, örneğin, ortalama, medyan, maks. Beklemediğiniz bir şeyi gösterebileceklerini kim bilebilir. Ne de olsa deneysel bir deney.
Apiwat Chantawibul

2
Bu çok geniştir; konu hakkında kitaplar yazılabilir, örn. McGeoch'un "Deneysel Algoritma Rehberi". Hatta "Bilim yapmak için herhangi bir standart var mı?" Bu yüzden bunun makul bir kapsamda olduğundan emin değilim. Daha spesifik sorularınız mı var?
Raphael

Yanıtlar:


2

CC McGeoch'un "Deneysel Algoritma Kılavuzu",

  • algoritmalar üzerinde deneylerin nasıl ayarlanacağı,
  • sonuçların nasıl yorumlanacağı ve kullanılacağı ve
  • gerekirse daha anlamlı sonuçlara nasıl yineleneceği.

2

Her bir çalışma için geçen süreye ek olarak, yalnızca bazı sayıların sürekli olarak "düşük" olduğunu ve geçen süre üzerinde önemsiz bir etkiye sahip olduğunu doğrulamak için kullanıcı ve sistem modunun saniyelerini ve toplam IP paketlerini ve toplam disk G / Ç'lerini bildirin.

Https://wiki.freebsd.org/BenchmarkAdvice PHK ve diğerleri üzerinde aşağıdakiler de dahil olmak üzere iyi tavsiyeler sunar:

Sayılarınızın anlamlı olup olmadığını görmek için ministat kullanın. "İstatistikler için karikatür kılavuzu" satın almayı düşünün

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.