Paste #71708: FreneticScript vs Denizen Speed-Race 2020

Date: 2020/06/30 19:03:33 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


Test1: repeat loop to increment a defined number using tags
Test2: repeat loop calling a simple subscript with a simple define/tag pair

Test practice: at least 3 warmup runs, then run 3x and take the median.

Denizen Test 1: One million loops (1000000) took 1490ms
Denizen Test 2: One million loops (1000000) took 2856ms

FS Test 1: One hundred million loops (100000000) took 630ms
FS Test 2: Ten million loops (10000000) took 3980ms

Test 1: Denizen took 236.5x longer
Test 2: Denizen took 7.2x longer




FS Code:

debug minimal;
function define test_one
{
    var start_time = <system.current_time_utc>
    var x = 0
    repeat 100000000
    {
        x = <x.add_int[1]>
    }
    var end_time = <system.current_time_utc>
    echo "Test1 Took <end_time.total_milliseconds.subtract_int[<start_time.total_milliseconds>]>ms"
}
function define test_two
{
    var start_time = <system.current_time_utc>
    repeat 10000000
    {
        call test_two_subcall
    }
    var end_time = <system.current_time_utc>
    echo "Test2 Took <end_time.total_milliseconds.subtract_int[<start_time.total_milliseconds>]>ms"
}
function define test_two_subcall
{
    var y = 0;
    y = <y.add_int[1]>;
}


------------------------------------------------------------------------------

Denizen Code:

test_one:
    type: task
    debug: false
    script:
    - define start_time <server.current_time_millis>
    - define x 0
    - repeat 1000000:
        - define x <[x].add_int[1]>
    - define end_time <server.current_time_millis>
    - narrate "Test1 took <[end_time].sub_int[<[start_time]>]>ms"

test_two:
    type: task
    debug: false
    script:
    - define start_time <server.current_time_millis>
    - repeat 1000000:
        - run test_two_subcall
    - define end_time <server.current_time_millis>
    - narrate "Test2 took <[end_time].sub_int[<[start_time]>]>ms"

test_two_subcall:
    type: task
    debug: false
    script:
    - define y 0
    - define y <[y].add_int[1]>