[Off] Faзa seu desafio, qual codigo й melhor e mais otimizado?
#5

pawn Код:
//
#define @BRU "\n" "Olб mundo!"
print( ! @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU);
print( ! @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU);
5 bjs.

O ъnico jeito melhor que este й:


Quote:

print("Ola mundo\nOlaMundo");

mas eu quis evitar a fadiga.

O meu й mais rбpido e estбvel e ocupa 4 vezes a menos de RAM, fim de histуria.


pawn Код:
new
        kuddy,
        dan,
        syn,
        bru
    ;


    new b = GetTickCount();
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");
    print("Olб mundo!");

    kuddy = GetTickCount() - b;

    b = GetTickCount();
    for(new x = 0; x ^ 50; ++x)
    {
        printf("Olб mundo!");
    }
    dan = GetTickCount() - b;

    b = GetTickCount();
    static _c;
    for(_c = -1; (++_c != 50); )
    {
        printf("Olб mundo!");
    }
    syn = GetTickCount() - b;

    b = GetTickCount();
    #define @BRU "\n" "Olб mundo!"
    print( !@BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU);
    print(  !@BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU @BRU);
   
    bru = GetTickCount() - b;


    printf("\n\nBenchmarks:\nKud: %d\nDan: %d\nSyn: %d\nBru: %d", kuddy, dan, syn, bru);
Код:
Kud: 93
Dan: 118
Syn: 100
Bru: 48
Duas vezes mais rбpido, em algumas vezes


Код:
Kud: 108
Dan: 93
Syn: 103
Bru: 61

Mas isso que eu e Kuddy fizemos й apelaзгo, nгo й o verdadeiro objetivo.


Entгo vamos fazer mais certinho


Essa й a maneira mais rбpida:


pawn Код:
{ // abrir escopo para declarar static dentro do loop

    static x;
    x = 0;
    do {
        print(!"Ola mundo!");
    }
    while(  ++x ^ 50);
     
 } // fechar escopo adicional

Dessa maneira, declara em static. Nгo ocupando muito tempo com news.

Dessa maneira, ocupa menos ram com print(!);

Dessa maneira, o ++x jб aumenta antes e envia para o resultado, tornando melhor que ++x

Dessa maneira ^ й melhor que !=
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 2 Guest(s)