SA-MP Forums Archive
[Include] Teste de Velocidade Preciso - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [Include] Teste de Velocidade Preciso (/showthread.php?tid=469273)



Teste de Velocidade Preciso - ipsBruno - 12.10.2013

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


Re : Teste de Velocidade Preciso - PT - 12.10.2013

ahah agr sim vou testar as coisas direito

Bom trabalho ae de vc's 2

Parabens!


Respuesta: Teste de Velocidade Preciso - DanDRT - 12.10.2013

Woooool Good Job!


Re: Teste de Velocidade Preciso - Duduzinho - 12.10.2013

Paraben! Muito bom trabalho !


Respuesta: Teste de Velocidade Preciso - ipsBruno - 12.10.2013

Exemplo de um teste de velocidade:


pawn Код:
new var1 = 2;
    new var2 = 3;
   
    TESTS(2000);
    if(var1 != var2) {}
    PROCESSAR();
    RESULTADO("var1 != var2");

    TESTS(2000);
    if(var1 ^ var2) {}
    PROCESSAR();
    RESULTADO("var1 ^ var2");
   

    TESTS(2000);
    if(var1 != var2) {}
    PROCESSAR();
    RESULTADO("var1 != var2");

    TESTS(2000);
    if(var1 ^ var2) {}
    PROCESSAR();
    RESULTADO("var1 ^ var2");


var1 ^ var2 contra var1 != var2


Resultados:

pawn Код:
[13:52:42] Resultados para: var1 != var2
   
     Nъmeros de execuзгo a cada milissegundo: 26.31500
     Tempo mнnimo: 54ms  Tempo mбximo: 173ms e Tempo mйdio: 76ms
     Tempo Final: 25.3080 segundos


[13:53:03] Resultados para: var1 ^ var2
   
     Nъmeros de execuзгo a cada milissegundo: 31.25000
     Tempo mнnimo: 58ms  Tempo mбximo: 110ms e Tempo mйdio: 64ms
     Tempo Final: 21.3120 segundos


[13:53:22] Resultados para: var1 != var2
   
     Nъmeros de execuзгo a cada milissegundo: 35.08700
     Tempo mнnimo: 54ms  Tempo mбximo: 90ms e Tempo mйdio: 57ms
     Tempo Final: 18.9810 segundos


[13:53:43] Resultados para: var1 ^ var2
   
     Nъmeros de execuзгo a cada milissegundo: 31.74600
     Tempo mнnimo: 59ms  Tempo mбximo: 94ms e Tempo mйdio: 63ms
     Tempo Final: 20.9790 segundos
Como podem ter notado. O Operador XOR reproduz atй 5 execuзхes a mais que o operador de equivalкncia.

Enquanto XOR tem uma media de 63 ~ 65. != Oscila entre 60 e 70.


Re: Teste de Velocidade Preciso - XxFaTaLxX - 12.10.2013

Nice, +REP.


Re: Teste de Velocidade Preciso - Juniiro3 - 12.10.2013

Vocк usou um nъmero meio besta para os testes nй? (entendedores entenderгo)

@Tуpico

Muito bom!
agr sim vou testar as coisas direitoІ


Re: Teste de Velocidade Preciso - Coe1 - 12.10.2013

Sйrio?

Agora poderei testar a velocidade dos meus cуdigos. AHEUAEHUAEHAE

Bom trabalho ( de novo, nй? ) Bruno.


Respuesta: Re: Teste de Velocidade Preciso - ipsBruno - 12.10.2013

Quote:
Originally Posted by Juniiro3
Посмотреть сообщение
Vocк usou um nъmero meio besta para os testes nй? (entendedores entenderгo)

@Tуpico

Muito bom!
agr sim vou testar as coisas direitoІ
Eu iria colocar 666 mas iria precisar de uma array muito grande para fazer as mйdias. O que й o bom deste sistema, pois ele calcula atravйs de milhares de execuзгo, sendo o mбximo preciso possнvel nos cбlculos.

Lembrando que quando maior o valor de estresse para o processador, mais lento ficarб o cуdigo e menos execuзхes por segundos serгo feitas


Re: Respuesta: Re: Teste de Velocidade Preciso - PT - 12.10.2013

Quote:
Originally Posted by ipsBruno
Посмотреть сообщение
Eu iria colocar 666 mas iria precisar de uma array muito grande para fazer as mйdias. O que й o bom deste sistema, pois ele calcula atravйs de milhares de execuзгo, sendo o mбximo preciso possнvel nos cбlculos.

Lembrando que quando maior o valor de estresse para o processador, mais lento ficarб o cуdigo e menos execuзхes por segundos serгo feitas
ele tbm e preciso a calcular includes de salvamento de dados?

ou melhor usar a velha maneira manual?


Respuesta: Teste de Velocidade Preciso - ipsBruno - 12.10.2013

Sim, calcula tudo.


Re: Teste de Velocidade Preciso - WLSF - 12.10.2013

Muito bom, parceiro


Respuesta: Teste de Velocidade Preciso - ipsBruno - 12.10.2013

Obviamente, testes como

!var

contra

var == 0


sгo tгo parecidos que й impossнvel ter algo preciso, o processador quando sobrecarrega oscila muito. Nestes casos de velocidades parecidas, sу com uma analise detalhada de como o cуdigo em AMX estarб fazendo as instruзхes em ASM.

Caso alguйm tiver dъvidas assim, bota o cуdigo aqui que eu faзo uma analise no cуdigo.


Re: Teste de Velocidade Preciso - shittt - 12.10.2013

Po fera so posta coisa foda , Valeu estava presisando de um desses ... estava cansado pra procurar kk.


Re : Teste de Velocidade Preciso - ipsBruno - 12.10.2013

Valeu shitt, qualquer coisa sobre o projeto sу pedir.

Abraзos


Re: Teste de Velocidade Preciso - RebeloX - 12.10.2013

Gostei bastante, bruno acho que vocк deveria participar mais na board inglesa lб nas discussхes


Re: Teste de Velocidade Preciso - shittt - 12.10.2013

Quote:
Originally Posted by BlueX
View Post
Gostei bastante, bruno acho que vocк deveria participar mais na board inglesa lб nas discussхes
Verdade deveria mesmo.


Re: Teste de Velocidade Preciso - PT - 12.10.2013

Quote:
Originally Posted by BlueX
View Post
Gostei bastante, bruno acho que vocк deveria participar mais na board inglesa lб nas discussхes
eu ja em outro tуpico tinha referido isso, ele rapaz tem uma capacidade fantбstica, mas n e so ele o Willian_Luigi tambйm


Re : Teste de Velocidade Preciso - ipsBruno - 13.10.2013

Atualizei para mostrar em milissegundos, assim fica mais preciso que segundos os resultados


Nгo falo inglкs, sу leio

O Will faz faculdade, o rapaz й quase um Doutor Eu pena to concluindo Ensino Mйdio.