Sziasztok.
Ide rakhattok olyan teszteket, amiben teszteltétek, hogy melyik funkció a gyorsabb.
Kezdem is:
if vs else if vs switch
Lefuttattam száz miliószor mind a hármat.
Time #1:Switch Time: 3505
If Time: 8061
Else If Time: 8075
Time #2:Switch Time: 3527
If Time: 8079
Else If Time: 8073
Time #3:Switch Time: 3500
If Time: 8092
Else If Time: 8083
Time #4:Switch Time: 3487
If Time: 8095
Else If Time: 8059
Time #5:Switch Time: 3527
If Time: 8072
Else If Time: 8074
Tesztkód:
#include <a_samp>
new
global_string[43],
CurrCount; // Ezt azért hozom létre globálisan, hogy ne legyen eltérés a tesztekben...
public OnFilterScriptInit()
{
CurrCount = GetTickCount();
for(new i; i < 100000000; i++)
{
switch(i)
{
case 15698895: format(global_string, sizeof(global_string), \"Na most megtudjuk, hogy melyik a gyorsabb \");
case 55669: format(global_string, sizeof(global_string), \"Na most megtudjuk, hogy melyik a gyorsabb \");
case 66689: format(global_string, sizeof(global_string), \"Na most megtudjuk, hogy melyik a gyorsabb \");
case 69566863: format(global_string, sizeof(global_string), \"Na most megtudjuk, hogy melyik a gyorsabb \");
case 95888828: format(global_string, sizeof(global_string), \"Na most megtudjuk, hogy melyik a gyorsabb \");
}
}
printf(\"Switch Time: %d\", GetTickCount() - CurrCount);
CurrCount = GetTickCount();
for(new i; i < 100000000; i++)
{
if(i == 15698895) format(global_string, sizeof(global_string), \"Na most megtudjuk, hogy melyik a gyorsabb \");
if(i == 55669) format(global_string, sizeof(global_string), \"Na most megtudjuk, hogy melyik a gyorsabb \");
if(i == 66689) format(global_string, sizeof(global_string), \"Na most megtudjuk, hogy melyik a gyorsabb \");
if(i == 69566863) format(global_string, sizeof(global_string), \"Na most megtudjuk, hogy melyik a gyorsabb \");
if(i == 95888828) format(global_string, sizeof(global_string), \"Na most megtudjuk, hogy melyik a gyorsabb \");
}
printf(\"If Time: %d\", GetTickCount() - CurrCount);
CurrCount = GetTickCount();
for(new i; i < 100000000; i++)
{
if(i == 15698895) format(global_string, sizeof(global_string), \"Na most megtudjuk, hogy melyik a gyorsabb \");
else if(i == 55669) format(global_string, sizeof(global_string), \"Na most megtudjuk, hogy melyik a gyorsabb \");
else if(i == 66689) format(global_string, sizeof(global_string), \"Na most megtudjuk, hogy melyik a gyorsabb \");
else if(i == 69566863) format(global_string, sizeof(global_string), \"Na most megtudjuk, hogy melyik a gyorsabb \");
else if(i == 95888828) format(global_string, sizeof(global_string), \"Na most megtudjuk, hogy melyik a gyorsabb \");
}
printf(\"Else If Time: %d\", GetTickCount() - CurrCount);
return 1;
}