Skip to content

Instantly share code, notes, and snippets.

@Y-Less
Last active October 28, 2017 12:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Y-Less/7f8155214507db72e4ece8386cfbfe28 to your computer and use it in GitHub Desktop.
Save Y-Less/7f8155214507db72e4ece8386cfbfe28 to your computer and use it in GitHub Desktop.
Compare PVars, GVars, SVars, properties, locals, and globals.
#define INCLUDE_PROFILINGS
#include <a_samp>
#include <YSI_Core\y_profiling>
#include <gvar>
static
gPlayerid,
gVar,
gDest;
#pragma unused gDest
#define LOOP_COUNT (10)
#define REPEAT_10(%0) %0,%0,%0,%0,%0,%0,%0,%0,%0,%0
Profile:WriteGlobals()
{
REPEAT_10(gVar = 42);
REPEAT_10(gVar = 42);
REPEAT_10(gVar = 42);
REPEAT_10(gVar = 42);
REPEAT_10(gVar = 42);
}
Profile:WriteLocals()
{
new local;
REPEAT_10(local = 42);
REPEAT_10(local = 42);
REPEAT_10(local = 42);
REPEAT_10(local = 42);
REPEAT_10(local = 42);
#pragma unused local
}
Profile:WritePVars()
{
REPEAT_10(SetPVarInt(gPlayerid, "PVar", 42));
REPEAT_10(SetPVarInt(gPlayerid, "PVar", 42));
REPEAT_10(SetPVarInt(gPlayerid, "PVar", 42));
REPEAT_10(SetPVarInt(gPlayerid, "PVar", 42));
REPEAT_10(SetPVarInt(gPlayerid, "PVar", 42));
}
Profile:WriteSVars()
{
REPEAT_10(SetSVarInt("SVar", 42));
REPEAT_10(SetSVarInt("SVar", 42));
REPEAT_10(SetSVarInt("SVar", 42));
REPEAT_10(SetSVarInt("SVar", 42));
REPEAT_10(SetSVarInt("SVar", 42));
}
Profile:WriteGVars()
{
REPEAT_10(SetGVarInt("GVar", 42));
REPEAT_10(SetGVarInt("GVar", 42));
REPEAT_10(SetGVarInt("GVar", 42));
REPEAT_10(SetGVarInt("GVar", 42));
REPEAT_10(SetGVarInt("GVar", 42));
}
Profile:WriteProperties()
{
REPEAT_10(setproperty(.name = "Prop", .value = 42));
REPEAT_10(setproperty(.name = "Prop", .value = 42));
REPEAT_10(setproperty(.name = "Prop", .value = 42));
REPEAT_10(setproperty(.name = "Prop", .value = 42));
REPEAT_10(setproperty(.name = "Prop", .value = 42));
}
ProfileInit:WriteGlobals()
{
gVar = 42;
}
ProfileInit:WriteLocals()
{
}
ProfileInit:WritePVars()
{
SetPVarInt(gPlayerid, "PVar", 42);
}
ProfileInit:WriteSVars()
{
SetSVarInt("SVar", 42);
}
ProfileInit:WriteGVars()
{
SetGVarInt("GVar", 42);
}
ProfileInit:WriteProperties()
{
setproperty(.name = "Prop", .value = 42);
}
Profile:ReadGlobals()
{
REPEAT_10(gDest = gVar);
REPEAT_10(gDest = gVar);
REPEAT_10(gDest = gVar);
REPEAT_10(gDest = gVar);
REPEAT_10(gDest = gVar);
}
Profile:ReadLocals()
{
new local;
REPEAT_10(gDest = local);
REPEAT_10(gDest = local);
REPEAT_10(gDest = local);
REPEAT_10(gDest = local);
REPEAT_10(gDest = local);
}
Profile:ReadPVars()
{
REPEAT_10(gDest = GetPVarInt(gPlayerid, "PVar"));
REPEAT_10(gDest = GetPVarInt(gPlayerid, "PVar"));
REPEAT_10(gDest = GetPVarInt(gPlayerid, "PVar"));
REPEAT_10(gDest = GetPVarInt(gPlayerid, "PVar"));
REPEAT_10(gDest = GetPVarInt(gPlayerid, "PVar"));
}
Profile:ReadSVars()
{
REPEAT_10(gDest = GetSVarInt("SVar"));
REPEAT_10(gDest = GetSVarInt("SVar"));
REPEAT_10(gDest = GetSVarInt("SVar"));
REPEAT_10(gDest = GetSVarInt("SVar"));
REPEAT_10(gDest = GetSVarInt("SVar"));
}
Profile:ReadGVars()
{
REPEAT_10(gDest = GetGVarInt("GVar"));
REPEAT_10(gDest = GetGVarInt("GVar"));
REPEAT_10(gDest = GetGVarInt("GVar"));
REPEAT_10(gDest = GetGVarInt("GVar"));
REPEAT_10(gDest = GetGVarInt("GVar"));
}
Profile:ReadProperties()
{
REPEAT_10(gDest = getproperty(.name = "Prop"));
REPEAT_10(gDest = getproperty(.name = "Prop"));
REPEAT_10(gDest = getproperty(.name = "Prop"));
REPEAT_10(gDest = getproperty(.name = "Prop"));
REPEAT_10(gDest = getproperty(.name = "Prop"));
}
main()
{
print("\n------------------");
printf(" Variables timing ");
print("------------------\n");
}
public OnPlayerSpawn(playerid)
{
gPlayerid = playerid;
Profiling_RunAll();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment