Search

open.mp forum

RegisterLogin

Discussion

General
Chat
Tech
Life
Art
Programming
open.mp
Development Updates
Questions and Suggestions
SA-MP
General Discussions
Videos and Screenshots
Support
Pawn Scripting
Tutorials
Releases
Plugins
Libraries
Filterscripts
Gamemodes
Maps
Advertisements
Other languages
Spanish/Espa?ol
Programaci?n
Discusi?n GTA SA Multijugador
Mods
Offtopic
Juegos
Portuguese/Portugu?s
Russian/???????
Italian/Italiano
Dutch/Nederlands
German/Deutsch
Romanian/Rom?na
Ex-Yu
Polish/Polski
Og?lne
Serwery
Skryptowanie
Filmiki i zdjecia
Lithuanian/Lietuvi?kas
French/Fran?ais
Hungarian/Magyar
Hindi/Urdu
Turkish
Other
Internal
Team
Hidden
Archived

Library

 Collections Links Members Roles

Opinion on PVars

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...

ID
d6ouivnilegovhg7bsug
author
pinch's avatar

Pinch

@pinch


View profile
Copy link
  Report member
started
Jun 5, 2021
replies
0
participating
No

scroll to top

powered by storyden

Login
Discussion
Pawn Scripting
Opinion on PVars
pinch's avatar

Pinch

@pinch


View profile
Copy link
  Report member
• 5y
Pawn Scripting

Opinion on PVars

pawn

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?

0 likes0 replies

    Please sign up or log in to reply