Hi everyone, I've gotten bored so I started writing a gamemode for fun, I want it to be a RolePlay gamemode with all of the stuff (like the NG-RP) but I want it to be smooth on bigger player base too..
I ran some tests and those were the results
Timing "PawnPlus list"...
Mean = 480.00ns
Mode = 475.00ns
Median = 477.00ns
Range = 5.00ns
Timing "Normal var"...
Mean = 200.00ns
Mode = 199.00ns
Median = 200.00ns
Range = 3.00ns
Timing "Pvar timings"...
Mean = 483.00ns
Mode = 481.00ns
Median = 483.00ns
Range = 4.00ns
The code I used:
new List:pp_list[1000];
enum E_PLAYER_DATA {
E_PLAYER_SOME_VAR,
E_PLAYER_SOME_VAR_2,
E_PLAYER_SOME_VAR_3
};
new PlayerData[1000][E_PLAYER_DATA];
hook OnScriptInit()
{
for(new i = 0; i < 1000; ) {
pp_list[i] = list_new();
list_resize_var(pp_list[i], 3, VAR_NULL);
}
return Y_HOOKS_CONTINUE_RETURN_1;
}
public OnPlayerConnect(playerid)
{
wait_ms(5000);
print("A");
RUN_TIMING("PawnPlus list")
{
list_set(pp_list[playerid], 0, 10000000);
list_set(pp_list[playerid], 1, 10000000);
list_set(pp_list[playerid], 2, 10000000);
}
RUN_TIMING("Normal var")
{
PlayerData[playerid][E_PLAYER_SOME_VAR] = 10000000;
PlayerData[playerid][E_PLAYER_SOME_VAR_2] = 10000000;
PlayerData[playerid][E_PLAYER_SOME_VAR_3] = 10000000;
}
RUN_TIMING("Pvar timings")
{
SetPVarInt(playerid, "key1", 10000000);
SetPVarInt(playerid, "key2", 10000000);
SetPVarInt(playerid, "key3", 10000000);
}
return 1;
}
So, is it worth it?
Should I use PVars/PP lists? Does it even matter that much when the diff is 200ns?