Second Life in Japan
string temp;

integer k = 5;
integer l = 6;
integer m = 7;
list L2 = ["a", 0, NULL_KEY];


integer x;
integer y;
integer z;
list L3;

callmelocal()
{
    //define and initalize variables with default values
    integer a;
    integer b;
    integer c;
    list L1;
    a = 5;
    b = 6;
    c = 7;
    L1 = ["a", 0, NULL_KEY];
    temp = "a"; // just something common to do
}

callmeglobalandinit()
{
    //variables k, l, m and L2 was already initialized with default values
    temp = "a"; // just something common to do
}

callmeglobal()
{
    //initalize variables with default values, they are already defined
    x = 5;
    y = 6;
    z = 7;
    L3 = ["a", 0, NULL_KEY];
    temp = "a"; // just something common to do    
}


default
{
    touch_start(integer num_detected)
    {
        integer i=0;
        integer repeats = 10000;
        float start;
        float elapsed;
        
        llOwnerSay("Running ...");

        llResetTime(); start = llGetTime();
        for (i=0; i<repeats; i++)
        {
            callmelocal(); //command to benchmark
        }
        elapsed = llGetTime() - start;
        llOwnerSay("Time for " + (string)repeats + " calls for Test #1: " + (string)elapsed + " seconds");


        llResetTime(); start = llGetTime();
        for (i=0; i<repeats; i++)
        {
            callmeglobal(); //command to benchmark
        }
        elapsed = llGetTime() - start;
        llOwnerSay("Time for " + (string)repeats + " calls for Test #2: " + (string)elapsed + " seconds");

        llResetTime(); start = llGetTime();
        for (i=0; i<repeats; i++)
        {
            callmeglobalandinit(); //command to benchmark
        }
        elapsed = llGetTime() - start;
        llOwnerSay("Time for " + (string)repeats + " calls for Test #3: " + (string)elapsed + " seconds");

    }

}