Date: 2016/02/03 23:48:33 UTC-08:00
Type: Denizen Script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# RESULTS:
# Denizen ran the test in 53.127 seconds... FreneticScript ran the test in 0.608 seconds.
# Denizen took roughly 87 times longer to complete the same code.
# //////////////////////////////////////////////////////////////////////
DENIZEN SCRIPT:
load_test:
type: task
debug: false
script:
- flag server load_test_counter:0
- define count 100000
- define time_start <server.current_time_millis>
- repeat <def[count]>:
- define x <server.flag[load_test_counter]>
- define y <def[x].add[1]>
- flag server load_test_counter:<def[y]>
- define time_end <server.current_time_millis>
- narrate "Completed <def[count]> loops in <def[time_end].sub_int[<def[time_start]>]>ms!"
# activated via: ex run load_test instantly
# Result: 53127ms
# //////////////////////////////////////////////////////////////////////
FRENETIC SCRIPT:
function define LOAD_TEST
{
debug minimal; // Was this needed to mark I forget
define count 100000;
set LOAD_TEST_TEMP_COUNTER 0;
define time_start <{util.current_time_utc.total_milliseconds}>;
repeat <{var[count]}>
{
define x <{cvar[LOAD_TEST_TEMP_COUNTER].value_number}>;
define y <{var[x].add[1]}>;
set LOAD_TEST_TEMP_COUNTER <{var[y]}>;
}
define time_end <{util.current_time_utc.total_milliseconds}>;
// TODO: Reduce need for to_number here
echo "Completed<{text_color.emphasis}> <{cvar[LOAD_TEST_TEMP_COUNTER]}> <{text_color.base}>loops in<{text_color.emphasis}> <{var[time_end].to_number.subtract[<{var[time_start]}>]}> <{text_color.base}>milliseconds!";
}
# activated via: call run load_test
# Result: 608ms