[Plugin] GVar Plugin
#96

Quote:
Originally Posted by IstuntmanI
Посмотреть сообщение
Code used:
pawn Код:
public OnFilterScriptInit( )
{
    new liTick;

    #define ITERS 1000000

    //============================[ Set Int ]===================================
    // GVar
    liTick = GetTickCount( );

    for( new i = 0; i < ITERS; i ++ )
        SetGVarInt( "TestSI", 69 );

    printf( "INT: Set: GVar speed for %d iterations: %dms", ITERS, GetTickCount( ) - liTick );

    // SVar
    liTick = GetTickCount( );

    for( new i = 0; i < ITERS; i ++ )
        SetSVarInt( "TestSI", 69 );

    printf( "INT: Set: SVar speed for %d iterations: %dms", ITERS, GetTickCount( ) - liTick );

    //============================[ Get Int ]===================================
    // GVar
    liTick = GetTickCount( );

    for( new i = 0; i < ITERS; i ++ )
        GetGVarInt( "TestGI" );

    printf( "INT: Get: GVar speed for %d iterations: %dms", ITERS, GetTickCount( ) - liTick );

    // SVar
    liTick = GetTickCount( );

    for( new i = 0; i < ITERS; i ++ )
        GetSVarInt( "TestGI" );

    printf( "INT: Get: SVar speed for %d iterations: %dms", ITERS, GetTickCount( ) - liTick );

    //===========================[ Set Float ]==================================
    // GVar
    liTick = GetTickCount( );

    for( new i = 0; i < ITERS; i ++ )
        SetGVarFloat( "TestSF", 69.00 );

    printf( "FLOAT: Set: GVar speed for %d iterations: %dms", ITERS, GetTickCount( ) - liTick );

    // SVar
    liTick = GetTickCount( );

    for( new i = 0; i < ITERS; i ++ )
        SetSVarFloat( "TestSF", 69.00 );

    printf( "FLOAT: Set: SVar speed for %d iterations: %dms", ITERS, GetTickCount( ) - liTick );

    //===========================[ Get Float ]==================================
    // GVar
    liTick = GetTickCount( );

    for( new i = 0; i < ITERS; i ++ )
        GetGVarFloat( "TestGF" );

    printf( "FLOAT: Get: GVar speed for %d iterations: %dms", ITERS, GetTickCount( ) - liTick );

    // SVar
    liTick = GetTickCount( );

    for( new i = 0; i < ITERS; i ++ )
        GetSVarFloat( "TestGF" );

    printf( "FLOAT: Get: SVar speed for %d iterations: %dms", ITERS, GetTickCount( ) - liTick );

    //===========================[ Set String ]=================================
    // GVar
    liTick = GetTickCount( );

    for( new i = 0; i < ITERS; i ++ )
        SetGVarString( "TestSS", "Sixty Nine" );

    printf( "STRING: Set: GVar speed for %d iterations: %dms", ITERS, GetTickCount( ) - liTick );

    // SVar
    liTick = GetTickCount( );

    for( new i = 0; i < ITERS; i ++ )
        SetSVarString( "TestSS", "Sixty Nine" );

    printf( "STRING: Set: SVar speed for %d iterations: %dms", ITERS, GetTickCount( ) - liTick );

    //===========================[ Get String ]=================================
    new lsString[ 16 ];

    // GVar
    liTick = GetTickCount( );

    for( new i = 0; i < ITERS; i ++ )
        GetGVarString( "TestGS", lsString, 16 );

    printf( "STRING: Get: GVar speed for %d iterations: %dms", ITERS, GetTickCount( ) - liTick );

    // SVar
    liTick = GetTickCount( );

    for( new i = 0; i < ITERS; i ++ )
        GetSVarString( "TestGS", lsString, 16 );

    printf( "STRING: Get: SVar speed for %d iterations: %dms", ITERS, GetTickCount( ) - liTick );

    return 1;
}
Results:


So SVars are slower only at setting strings.
That's not entirely accurate. You're only allocating one element each time. I've only tested integers, but here's what I got by allocating 100,000 unique elements:

pawn Код:
new names[100000][16];
for (new i = 0; i < 100000; i++)
{
    format(names[i], sizeof(names[]), "name_%d", i);
}
pawn Код:
new time = GetTickCount();
for (new i = 0; i < 100000; i++)
{
    SetGVarInt(names[i], i);
}
printf("Time #1: %d", GetTickCount() - time);

time = GetTickCount();
for (new i = 0; i < 100000; i++)
{
    GetGVarInt(names[i]);
}
printf("Time #2: %d", GetTickCount() - time);
Код:
[19:03:10] Time #1: 54
[19:03:10] Time #2: 35
pawn Код:
new time = GetTickCount();
for (new i = 0; i < 100000; i++)
{
    SetSVarInt(names[i], i);
}
printf("Time #1: %d", GetTickCount() - time);
   
time = GetTickCount();
for (new i = 0; i < 100000; i++)
{
    GetSVarInt(names[i], i);
}
printf("Time #2: %d", GetTickCount() - time);
Код:
[19:04:05] Time #1: 1089
[19:04:06] Time #2: 1004
SVars are big improvement over properties, but they still seem to be slightly slower than GVars as they increase in number. I assume a hash table implementation wasn't used.

As for your suggestion: yes, I suppose that could be done pretty easily. JernejL also suggested iteration support to me a while back, but I haven't found the time to see about adding it yet.
Reply


Messages In This Thread
GVar Plugin - by Incognito - 29.05.2010, 08:29
Re: [REL] GVar Plugin v1.0 - by Sergei - 29.05.2010, 09:10
Re: [REL] GVar Plugin v1.0 - by xxmitsu - 29.05.2010, 09:56
Re: [REL] GVar Plugin v1.0 - by bpeterson - 29.05.2010, 10:17
Re: [REL] GVar Plugin v1.0 - by Incognito - 29.05.2010, 10:23
Re: [REL] GVar Plugin v1.0 - by [HUN]Gamestar - 29.05.2010, 14:34
Re: [REL] GVar Plugin v1.0 - by Victor - 29.05.2010, 14:51
Re: [REL] GVar Plugin v1.0 - by [HUN]Gamestar - 29.05.2010, 15:10
Re: [REL] GVar Plugin v1.0 - by Toni - 29.05.2010, 16:29
Re: [REL] GVar Plugin v1.0 - by Johnny_Xayc - 29.05.2010, 16:56
Re: [REL] GVar Plugin v1.0 - by Sergei - 29.05.2010, 18:08
Re: [REL] GVar Plugin v1.0 - by Calgon - 29.05.2010, 19:04
Re: [REL] GVar Plugin v1.0 - by MPKaboose - 29.05.2010, 19:21
Re: [REL] GVar Plugin v1.0 - by Incognito - 29.05.2010, 20:05
Re: [REL] GVar Plugin v1.0 - by [HUN]Gamestar - 29.05.2010, 20:18
Re: [REL] GVar Plugin v1.0 - by Sergei - 29.05.2010, 20:23
Re: [REL] GVar Plugin v1.0 - by nemesis- - 29.05.2010, 23:52
Re: [REL] GVar Plugin v1.0 - by Sergei - 30.05.2010, 06:31
Re: [REL] GVar Plugin v1.0 - by nemesis- - 30.05.2010, 16:52
Re: [REL] GVar Plugin v1.0 - by d0 - 30.05.2010, 17:11
Re: [REL] GVar Plugin v1.0 - by nemesis- - 30.05.2010, 20:30
Re: [REL] GVar Plugin v1.0 - by Sergei - 30.05.2010, 20:55
Re: [REL] GVar Plugin v1.0 - by nemesis- - 30.05.2010, 21:39
Re: [REL] GVar Plugin v1.0 - by Sergei - 30.05.2010, 21:43
Re: [REL] GVar Plugin v1.0 - by nemesis- - 30.05.2010, 22:05
Re: [REL] GVar Plugin v1.0 - by Sergei - 30.05.2010, 22:12
Re: [REL] GVar Plugin v1.0 - by Calgon - 30.05.2010, 22:15
Re: [REL] GVar Plugin v1.0 - by nemesis- - 30.05.2010, 22:33
Re: [REL] GVar Plugin v1.0 - by Kyosaur - 30.05.2010, 22:38
Re: [REL] GVar Plugin v1.0 - by Sergei - 30.05.2010, 22:43
Re: [REL] GVar Plugin v1.0 - by pyrodave - 30.05.2010, 23:11
Re: [REL] GVar Plugin v1.0 - by Grim_ - 31.05.2010, 00:06
Re: [REL] GVar Plugin v1.1 - by Incognito - 31.05.2010, 03:25
Re: [REL] GVar Plugin v1.1 - by Grim_ - 31.05.2010, 04:18
Re: [REL] GVar Plugin v1.1 - by Sergei - 31.05.2010, 07:14
Re: [REL] GVar Plugin v1.1 - by Rac3r - 31.05.2010, 09:52
Re: [REL] GVar Plugin v1.2 - by nemesis- - 20.06.2010, 16:42
Re: [REL] GVar Plugin v1.2 - by yezizhu - 21.07.2010, 07:31
Re: [REL] GVar Plugin v1.2 - by Sergei - 21.07.2010, 09:09
Re: [REL] GVar Plugin v1.2 - by yezizhu - 21.07.2010, 11:52
Re: [REL] GVar Plugin v1.2 - by -Davee- - 02.08.2010, 14:56
Re: [REL] GVar Plugin v1.2 - by Incognito - 17.08.2010, 10:04
Respuesta: [REL] GVar Plugin v1.2 - by DarkChildren - 17.08.2010, 18:30
Re: [REL] GVar Plugin v1.2 - by nemesis- - 21.08.2010, 23:19
Re: [REL] GVar Plugin v1.3 - by Johnny_Xayc - 04.09.2010, 07:55
Re: [REL] GVar Plugin v1.3 - by DiddyBop - 09.09.2010, 14:28
Re: [REL] GVar Plugin v1.3 - by Calgon - 09.09.2010, 16:36
Re: [REL] GVar Plugin v1.3 - by papedo - 28.10.2010, 21:02
Re: [REL] GVar Plugin v1.3 - by yezizhu - 06.11.2010, 06:00
Re: [REL] GVar Plugin v1.3 - by Sergei - 06.11.2010, 09:51
Re: [REL] GVar Plugin v1.3 - by yezizhu - 06.11.2010, 14:36
Re: [REL] GVar Plugin v1.3 - by Babul - 16.11.2010, 16:22
Re: [REL] GVar Plugin v1.3 - by TheGuardianAngel - 16.11.2010, 16:57
Re: [REL] GVar Plugin v1.3 - by Sergei - 16.11.2010, 18:56
Re: [REL] GVar Plugin v1.3 - by Slice - 16.11.2010, 20:14
Re: [REL] GVar Plugin v1.3 - by Sergei - 17.11.2010, 02:44
Re: [REL] GVar Plugin v1.3 - by HACKHERS - 05.12.2010, 17:32
Re: [REL] GVar Plugin v1.3 - by Scenario - 05.12.2010, 18:02
Re: [REL] GVar Plugin v1.3 - by papedo - 16.09.2011, 17:14
Re: [REL] GVar Plugin v1.3 - by kurta999 - 16.09.2011, 18:00
Re: [REL] GVar Plugin v1.0 - by henry jiggy - 25.09.2011, 20:47
Re: [REL] GVar Plugin v1.3 - by NeyMar96 - 25.12.2011, 18:00
Re: [REL] GVar Plugin v1.3 - by kurta999 - 25.12.2011, 18:26
Re: [REL] GVar Plugin v1.3 - by NeyMar96 - 26.12.2011, 10:52
Re: [REL] GVar Plugin v1.3 - by kurta999 - 26.12.2011, 11:11
Re: [REL] GVar Plugin v1.3 - by RAEN - 18.02.2012, 11:43
Re: [REL] GVar Plugin v1.3 - by [Diablo] - 18.02.2012, 12:13
Re: [REL] GVar Plugin v1.3 - by Ewwe - 24.05.2012, 14:52
Re: [REL] GVar Plugin v1.3 - by kurta999 - 24.05.2012, 14:55
Re: [REL] GVar Plugin v1.3 - by AndreT - 15.02.2013, 15:24
Re: [REL] GVar Plugin v1.3 - by SDraw - 15.02.2013, 15:33
Re: GVar Plugin - by SlonCHL - 24.11.2013, 07:23
Re: GVar Plugin - by Quis - 15.01.2014, 05:36
Re: GVar Plugin - by iZN - 15.01.2014, 06:56
Re: GVar Plugin - by SlonCHL - 02.06.2014, 05:59
Re: GVar Plugin - by iZN - 02.06.2014, 07:03
Re: GVar Plugin - by iFarbod - 02.06.2014, 07:25
Re: GVar Plugin - by SlonCHL - 02.06.2014, 10:58
Re: GVar Plugin - by kurta999 - 22.07.2014, 20:54
Re: GVar Plugin - by driftpower - 22.07.2014, 21:02
Re: GVar Plugin - by Sojo12 - 25.07.2014, 09:35
Re: GVar Plugin - by Arastair - 29.11.2014, 10:37
Re: GVar Plugin - by IstuntmanI - 11.01.2015, 21:15
Re: GVar Plugin - by Crayder - 12.01.2015, 05:44
Re: GVar Plugin - by IstuntmanI - 12.01.2015, 11:33
Re: GVar Plugin - by WLSF - 15.01.2015, 11:57
Re: GVar Plugin - by Marcuse - 27.02.2015, 13:14
Re: GVar Plugin - by AroseKhanNiazi - 27.02.2015, 15:46
Re: GVar Plugin - by RaeF - 05.04.2015, 00:09
Re: GVar Plugin - by IstuntmanI - 11.07.2015, 21:32
Re: GVar Plugin - by KingHual - 11.07.2015, 21:49
Re: GVar Plugin - by IstuntmanI - 11.07.2015, 21:56
Re: GVar Plugin - by kurta999 - 11.07.2015, 23:24
Re: GVar Plugin - by IstuntmanI - 11.07.2015, 23:46
Re: GVar Plugin - by kurta999 - 11.07.2015, 23:48
Re: GVar Plugin - by Incognito - 15.07.2015, 23:14
Re: GVar Plugin - by BladeFire - 16.07.2015, 08:43
Re: GVar Plugin - by DanielCortez - 19.07.2015, 15:06
Re: GVar Plugin - by Incognito - 20.07.2015, 04:33
Re: GVar Plugin - by RaeF - 20.07.2015, 05:05
Re: GVar Plugin - by Crayder - 20.07.2015, 08:10
Re: GVar Plugin - by Logofero - 26.07.2015, 17:00
Re: GVar Plugin - by IstuntmanI - 28.07.2015, 19:39
Re: GVar Plugin - by nGen.SoNNy - 18.02.2016, 10:53
Re: GVar Plugin - by IstuntmanI - 18.02.2016, 13:52
Re: GVar Plugin - by nGen.SoNNy - 23.02.2016, 14:28
Re: GVar Plugin - by Jastak - 23.02.2016, 19:52
Re: GVar Plugin - by nGen.SoNNy - 13.05.2016, 23:08
Re: GVar Plugin - by IstuntmanI - 14.05.2016, 00:36
Re: GVar Plugin - by Knollle - 11.06.2016, 13:16
Re: GVar Plugin - by Killer_Klient - 04.12.2017, 21:32

Forum Jump:


Users browsing this thread: 1 Guest(s)