Digamos que eu tenha versões lentas e rápidas de algum código e queira relatar um número de aceleração comparando os dois. Eu executo a versão lenta times e a versão rápida m times, produzindo times ( s 1 , … , s n ) e ( f 1 , … , f m ) . A maneira mais simples de produzir uma aceleração é calcular a média dos meios: ˉ s No entanto, isso não leva em consideração os outliers.
Pergunta : Qual é a melhor estatística a ser usada ao relatar números de aceleração?
statistics
publications
Geoffrey Irving
fonte
fonte
Respostas:
Além de tudo o que Bill Barth já disse acima, deixe-me mencionar que as pessoas costumam relatar o mais rápido de várias corridas. A lógica é que o tempo de execução real é o ideal tempo de execução mais qualquer número de lentidão resultantes de outros processos em execução, os atrasos do sistema operacional, atrasos na rede, etc. Uma vez que estes são todos os ruídos que não está interessado, usando o mais rápido tempo de execução vem mais próximo do que realmente queremos saber.
fonte
yes A is theoretically only ~3x faster
, uma aceleração de ~ 3x não é representativa da aceleração esperada ao usar a implementação A em vez de B? (Este é um exemplo da vida real por sinal)Sugiro que você use a mediana para fornecer uma estimativa estatística. Diferentemente da média, a mediana não é corrompida pelos valores discrepantes.
fonte
Se o desvio padrão não for desprezível, você poderá usar dois gráficos de caixas lado a lado, construídos cada um com o tempo de um dos algoritmos. Eles não são de todo o modo padrão na análise numérica, mas fazem um ótimo trabalho ao exibir esse tipo de informação.
fonte