[Include] Teste de Velocidade Preciso
#1

Ultimamente, tenho feitos meus testes com BENCH MARK, mas como й em execuзхes por milissegundo andei notando uma falta de precisгo testes retornados, por este motivo criei minha prуpria BENCH que traz mais informaзхes sobre o processamento do cуdigo, assim podem analisar qual cуdigo й mais rбpido



O que ele processa:

Ele faz por tempo mйdio, dessa maneira a qualidade da mediзгo й bastante alta. Sгo 333 testes com o mesmo cуdigo para pegar da forma mais preciso possнvel o tempo.

Ele pega o tempo mбximo e mнnimo. Para vocк poder analisar os picos e declнnios no tempo de seu cуdigo. Lembrando que isto pode ser por causa do seu processador em casos de picos muito altos.


Ele processa o nъmero total de segundos (como padrгo) para calcular quanto tempo cada cуdigo levou para ser executado. Este й um bom parвmetro, pois em casos de diferenзas absurdas o resultado do cуdigo mais rбpido sempre serб menor.


Ele tambйm processa o nъmero de execuзхes por milissegundos, dessa maneira vocк tem uma mйdia de quantas execuзхes foram feitas em um ъnico millissegundo e poderб checar qual cуdigo conseguiu se reproduzir mais





Modo de uso:



pawn Код:
//

TESTS(333);
// O CУDIGO VAI AQUI
PROCESSAR();
RESULTADO("Nome do cуdigo");
Em TESTS й possнvel estipular a quantidade de processamento que vocк quer exigir, por padrгo й 333. Valores muito grandes ou muito pequenos podem atrapalhar no cбlculo dos valores devido ao limite do Pawn. Deixe entre 100 e 5000, й uma mйdia boa

Quanto maior melhor, porem em valores exagerados pode travar seu samp_server, use com cudiado





Cуdigo da Include:


pawn Код:
#define CONT@CONT GetTickCount()


#define TESTS(%0);          { /*esquentar o processador */ for(new uashushua; uashushua != 9990000; uashushua++) {} /* testar o cуdigo */  new testes___@ [666], mMmEDIA;  new j__@; new TTTiem =   CONT@CONT;  for(new i__@; i__@ != 333; ++i__@ ) { j__@=0;testes___@[i__@] = CONT@CONT;for(; j__@ != %0; ++j__@ ) {
#define PROCESSAR();        }testes___@[i__@] = CONT@CONT - testes___@[i__@];mMmEDIA += testes___@[i__@];}mMmEDIA /= (333);new mmMin = cellmax, mMax = 0;for(new aaa_@_teste; aaa_@_teste != 666; aaa_@_teste++) {
#define RESULTADO(%0);      if(mmMin > testes___@[aaa_@_teste]) mmMin = testes___@[aaa_@_teste]; if(mMax < testes___@[aaa_@_teste]) mMax = testes___@[aaa_@_teste];}printf("Resultados para: "#%0" \n\t\n\t Nъmeros de execuзгo a cada milissegundo: %.5f \n\t Tempo mнnimo: %dms  Tempo mбximo: %dms e Tempo mйdio: %dms\n\t Tempo Final: %d milissegundos\n\n",  float((j__@) / (mMmEDIA > 0 ? mMmEDIA : 1))/1000,mmMin, mMax,mMmEDIA,  CONT@CONT - TTTiem);}


Problemas: Darб loose indentation em alguns casos, basta ignorar ou usar pragma tabsize






Dica importante:


Em Pawn, hб um bug que o primeiro cуdigo se torna mais lento que o segundo. Isto porque й necessбrio criar e alocar novos endereзos e dados na memуria, o que o cуdigo posterior nгo via precisar. Por este motivo, antes dos testes, eu pessoalmente te aconselho a colocar um teste nulo

pawn Код:
TESTS(100);
    PROCESSAR();
    RESULTADO("");

Em cуdigos muito grande o processamento vai demorar mais. Muito mais. Portanto aconselho-te abaixo o valor do STRESS em TESTS.

Outra coisa importante й o seguinte, quando maior for o valor colocado em TESTS, mais o cуdigo poderб ser analisado e com isto, vocк pode obter uma mйdia excelente dos resultados obtidos, pois a mйdia fica mais precisa.



Autoria:

Bruno da Silva desenvolvedor, e William Luigi idealizador.

[iPs]TeaM
Reply


Messages In This Thread
Teste de Velocidade Preciso - by ipsBruno - 12.10.2013, 16:41
Re : Teste de Velocidade Preciso - by PT - 12.10.2013, 16:43
Respuesta: Teste de Velocidade Preciso - by DanDRT - 12.10.2013, 16:44
Re: Teste de Velocidade Preciso - by Duduzinho - 12.10.2013, 16:44
Respuesta: Teste de Velocidade Preciso - by ipsBruno - 12.10.2013, 16:45
Re: Teste de Velocidade Preciso - by XxFaTaLxX - 12.10.2013, 16:45
Re: Teste de Velocidade Preciso - by Juniiro3 - 12.10.2013, 16:46
Re: Teste de Velocidade Preciso - by Coe1 - 12.10.2013, 16:46
Respuesta: Re: Teste de Velocidade Preciso - by ipsBruno - 12.10.2013, 16:47
Re: Respuesta: Re: Teste de Velocidade Preciso - by PT - 12.10.2013, 16:51
Respuesta: Teste de Velocidade Preciso - by ipsBruno - 12.10.2013, 16:52
Re: Teste de Velocidade Preciso - by WLSF - 12.10.2013, 16:53
Respuesta: Teste de Velocidade Preciso - by ipsBruno - 12.10.2013, 16:58
Re: Teste de Velocidade Preciso - by shittt - 12.10.2013, 17:33
Re : Teste de Velocidade Preciso - by ipsBruno - 12.10.2013, 21:16
Re: Teste de Velocidade Preciso - by RebeloX - 12.10.2013, 22:31
Re: Teste de Velocidade Preciso - by shittt - 12.10.2013, 22:46
Re: Teste de Velocidade Preciso - by PT - 12.10.2013, 23:04
Re : Teste de Velocidade Preciso - by ipsBruno - 13.10.2013, 09:30

Forum Jump:


Users browsing this thread: 6 Guest(s)