Raised This Month: $ Target: $400
 0% 

Question about optimization


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
grs4
Senior Member
Join Date: Dec 2010
Location: Poland
Old 02-06-2017 , 12:33   Question about optimization
Reply With Quote #1

What is better to keep data in entity and what is faster?

PHP Code:
#define EV_INT_turret_index         EV_INT_iuser1
#define EV_INT_turret_type         EV_INT_iuser2
#define EV_INT_turret_firemode         EV_INT_iuser3
#define EV_INT_turret_target        EV_INT_iuser4
#define EV_INT_turret_ammo        EV_INT_team
#define EV_INT_turret_level        EV_INT_flSwimTime
#define EV_ENT_turret_owner         EV_ENT_owner
#define EV_ENT_turret_ranger        EV_ENT_euser1

public TurretThink(iTurretEntity
//...
static  ENUM_TURRET_TYPE:iTypeiType ENUM_TURRET_TYPEentity_get_int(iTurretEntityEV_INT_turret_type)
static 
iPlayeriPlayer entity_get_edict(iTurretEntityEV_ENT_turret_owner)
static 
iTurretIndex TurretIndex entity_get_int(iTurretEntityEV_INT_turret_index)

static 
iShotiShot entity_get_int(iTurretEntityEV_INT_turret_canshoot)
static 
iTargetiTarget entity_get_int(iTurretEntityEV_INT_turret_target)
static 
iTurretAmmoiTurretAmmo entity_get_int(iTurretEntityEV_INT_turret_ammo
or

PHP Code:
#define MAX_TURRETS 10
new g_PlayerTurretType[33][MAX_TURRETS]
new 
g_CanTurretShot[33][MAX_TURRETS]
new 
g_TurretAmmo[33][MAX_TURRETS]
new 
g_gTurretTarget[33][MAX_TURRETS]

public 
TurretThink(iTurretEntity
//...
static iPlayeriPlayer entity_get_edict(iTurretEntityEV_ENT_turret_owner)
static 
iTurretIndex ;  iTurretIndex entity_get_int(iTurretEntityEV_INT_turret_index)
static  
ENUM_TURRET_TYPE:iTypeiType ENUM_TURRET_TYPEg_PlayerTurretType[iPlayer][iTurretIndex]
static 
iShotiShot g_CanTurretShot[iPlayer][iTurretIndex]
static 
iTarget;  iTarget g_TurretTarget[iPlayer][iTurretIndex]
static 
iTurretAmmoiTurretAmmo g_TurretAmmo[iPlayer][iTurretIndex
Faster is array or entity_get_int or edict etc?
This Think will be executed very, very often.
I want to keep data in EV_ (like #define upside) but I care about speed ;)

Last edited by grs4; 02-07-2017 at 03:59.
grs4 is offline
Black Rose
Veteran Member
Join Date: Feb 2011
Location: Stockholm, Sweden
Old 02-07-2017 , 14:17   Re: Question about optimization
Reply With Quote #2

This is of course a simulated example. It will not give an accurate picture of how you actually use the parameters. In some cases, you might not load every one of them which will reduce native calls with method 4 but leave the others more or less unchanged.
In the end, the biggest difference between them is around 20%, which is not enough to care about in situations like this. You will more likely have other functions in this think function to drain performance.
Spoiler
__________________

Last edited by Black Rose; 02-07-2017 at 14:18.
Black Rose is offline
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 21:04.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode