Skip to content

Instantly share code, notes, and snippets.

@KingAlterIV
Forked from RezzedUp/yaml-test-2.sk
Last active November 22, 2018 03:16
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 KingAlterIV/185abdb297f83fcea05471cbc658b9f1 to your computer and use it in GitHub Desktop.
Save KingAlterIV/185abdb297f83fcea05471cbc658b9f1 to your computer and use it in GitHub Desktop.
TXyaml vs. YAML Test 2.0: skript-yaml edition

All of the units are in per second

250 TXyaml setting - 72.046109510086455331412103746398
500 TXyaml setting - 66.755674232309746328437917222964
750 TXyaml setting - 46.699875466998754669987546699875
1000 TXyaml setting - 36.49635036496350364963503649635
1250 TXyaml setting - 30.879446640316205533596837944664
1500 TXyaml setting - 27.036770007209805335255948089402
1750 TXyaml setting - 24.147923278598040568511108044708
2000 TXyaml setting - 21.689621516104543975707623901963
2250 TXyaml setting - 19.832525341560158660202732481269
2500 TXyaml setting - 18.471996453376680951677257277967

250 TXyaml grabbing - 39.619651347068145800316957210777
500 TXyaml grabbing - 41.562759767248545303408146300914
750 TXyaml grabbing - 37.276341948310139165009940357853
1000 TXyaml grabbing - 33.613445378151260504201680672269
1250 TXyaml grabbing - 31.661600810536980749746707193516
1500 TXyaml grabbing - 31.820110309715740347899872719559
1750 TXyaml grabbing - 31.028368794326241134751773049645
2000 TXyaml grabbing - 31.872509960159362549800796812749
2250 TXyaml grabbing - 32.77972027972027972027972027972
2500 TXyaml grabbing - 33.557046979865771812080536912752
[18:49:52 INFO]: Generating random strings...
[18:49:52 INFO]: Generated 250 strings. 0.56 seconds since starting.
[18:49:53 INFO]: Generated 500 strings. 0.92 seconds since starting.
[18:49:53 INFO]: Generated 750 strings. 1.21 seconds since starting.
[18:49:53 INFO]: Generated 1000 strings. 1.45 seconds since starting.
[18:49:53 INFO]: Generated 1250 strings. 1.62 seconds since starting.
[18:49:53 INFO]: Generated 1500 strings. 1.78 seconds since starting.
[18:49:54 INFO]: Generated 1750 strings. 1.92 seconds since starting.
[18:49:54 INFO]: Generated 2000 strings. 2.05 seconds since starting.
[18:49:54 INFO]: Generated 2250 strings. 2.17 seconds since starting.
[18:49:54 INFO]: Generated 2500 strings. 2.27 seconds since starting.
[18:49:54 INFO]: Generated 2500 random strings: 2.28 seconds
[18:49:54 INFO]: Setting 2500 TXyaml...
[18:49:57 INFO]: Set 250 TXyaml. 3.47 seconds since starting.
[18:50:01 INFO]: Set 500 TXyaml. 7.49 seconds since starting.
[18:50:10 INFO]: Set 750 TXyaml. 16.06 seconds since starting.
[18:50:21 INFO]: Set 1000 TXyaml. 27.4 seconds since starting.
[18:50:34 INFO]: Set 1250 TXyaml. 40.48 seconds since starting.
[18:50:49 INFO]: Set 1500 TXyaml. 55.36 seconds since starting.
[18:51:06 INFO]: Set 1750 TXyaml. 1 minute and 12.47 seconds since starting.
[18:51:26 INFO]: Set 2000 TXyaml. 1 minute and 32.21 seconds since starting.
[18:51:47 INFO]: Set 2250 TXyaml. 1 minute and 53.45 seconds since starting.
[18:52:09 INFO]: Set 2500 TXyaml. 2 minutes and 15.34 seconds since starting.
[18:52:09 INFO]: TXyaml-set test: 2 minutes and 15.34 seconds
[18:52:09 INFO]: Setting 2500 YAML values...
[18:52:09 INFO]: Set 250 YAML values. 0.01 seconds since starting.
[18:52:09 INFO]: Set 500 YAML values. 0.03 seconds since starting.
[18:52:09 INFO]: Set 750 YAML values. 0.04 seconds since starting.
[18:52:09 INFO]: Set 1000 YAML values. 0.05 seconds since starting.
[18:52:09 INFO]: Set 1250 YAML values. 0.06 seconds since starting.
[18:52:09 INFO]: Set 1500 YAML values. 0.07 seconds since starting.
[18:52:09 INFO]: Set 1750 YAML values. 0.09 seconds since starting.
[18:52:09 INFO]: Set 2000 YAML values. 0.1 seconds since starting.
[18:52:09 INFO]: Set 2250 YAML values. 0.11 seconds since starting.
[18:52:09 INFO]: Set 2500 YAML values. 0.12 seconds since starting.
[18:52:10 INFO]: YAML-set test: 0.4 seconds
[18:52:10 INFO]: Getting 2500 TXyaml...
[18:52:16 INFO]: Got 250 TXyaml values. 6.31 seconds since starting.
[18:52:22 INFO]: Got 500 TXyaml values. 12.03 seconds since starting.
[18:52:30 INFO]: Got 750 TXyaml values. 20.12 seconds since starting.
[18:52:39 INFO]: Got 1000 TXyaml values. 29.75 seconds since starting.
[18:52:49 INFO]: Got 1250 TXyaml values. 39.48 seconds since starting.
[18:52:57 INFO]: Got 1500 TXyaml values. 47.14 seconds since starting.
[18:53:06 INFO]: Got 1750 TXyaml values. 56.4 seconds since starting.
[18:53:12 INFO]: Got 2000 TXyaml values. 1 minute and 2.75 seconds since starting.
[18:53:18 INFO]: Got 2250 TXyaml values. 1 minute and 8.64 seconds since starting.
[18:53:24 INFO]: Got 2500 TXyaml values. 1 minute and 14.5 seconds since starting.
[18:53:24 INFO]: TXyaml-get test: 1 minute and 14.5 seconds
[18:53:24 INFO]: Getting 2500 random YAML values...
[18:53:24 INFO]: Got 250 YAML values. 0 seconds since starting.
[18:53:24 INFO]: Got 500 YAML values. 0.01 seconds since starting.
[18:53:24 INFO]: Got 750 YAML values. 0.01 seconds since starting.
[18:53:24 INFO]: Got 1000 YAML values. 0.02 seconds since starting.
[18:53:24 INFO]: Got 1250 YAML values. 0.02 seconds since starting.
[18:53:24 INFO]: Got 1500 YAML values. 0.03 seconds since starting.
[18:53:24 INFO]: Got 1750 YAML values. 0.03 seconds since starting.
[18:53:24 INFO]: Got 2000 YAML values. 0.03 seconds since starting.
[18:53:24 INFO]: Got 2250 YAML values. 0.04 seconds since starting.
[18:53:24 INFO]: Got 2500 YAML values. 0.04 seconds since starting.
[18:53:24 INFO]: YAML-get test: 0.04 seconds
[18:53:24 INFO]: --- RESULTS: ---
[18:53:24 INFO]: Set 2500 TXyaml values test: 2 minutes and 15.34 seconds
[18:53:24 INFO]: Set 2500 skript-yaml values test: 0.4 seconds
[18:53:24 INFO]: Get 2500 TXyaml test: 1 minute and 14.5 seconds
[18:53:24 INFO]: Get 2500 skript-yaml test: 0.04 seconds

Picture https://i.imgur.com/apSbz2r.png

#
# Variables vs. YAML Test
# -----------------------
# By: RezzedUp
# Version: 2.0
# (skript-yaml edition)
# -----------------------
# Requires:
# - Skript 2.2 (functions)
# - skript-yaml (yaml)
# - TXyaml
#
#
# Change the values below to test different scenarios.
#
# PAUSE: How long the script should wait when it encounters its 'pause' state.
#
# TESTS: The number of tests to run. This value modifies the number of unique
# values generated for 'set' tests, and how many values are randomly
# selected for 'get' tests.
#
# BREAK: The number of tests to run before the script should enter its 'pause' state.
# This prevents the server from crashing (because YAML is incredibly inefficient),
# but please remember that this will also increase test-time.
#
options:
PAUSE: wait 2 ticks
TESTS: 2500
BREAK: 250
on script load:
delete {test::*}
on script unload:
delete {test::*}
function randomString(length: integer = 20, alphabet: string = "abcdefghijklmnopqrstuvwxyz0123456789-_") :: string:
set {_chars::*} to {_alphabet} split at ""
set {_string} to ""
while length of {_string} is less than {_length}:
set {_string} to "%{_string}%%random element out of {_chars::*}%"
return {_string}
command /test:
aliases: /yamltest, /yaml-test
trigger:
#
# Prepare random strings because the `randomString()` function is poor for performance
# and hinders the score for setting variables.
#
send "&aGenerating random strings..."
set {_randomly-generated-start} to now
set {_randomly-generated-strings} to 0
while {_randomly-generated-strings} is less than {@TESTS}:
set {_key} to randomString()
{_random::%{_key}%} isn't set
set {_random::%{_key}%} to {_key}
add 1 to {_randomly-generated-strings}
if mod({_randomly-generated-strings}, {@BREAK}) is 0:
{@PAUSE}
send "Generated %{_randomly-generated-strings}% strings. %difference between now and {_randomly-generated-start}% since starting."
send "&6Generated %amount of {_random::*}% random strings: &f%difference between now and {_randomly-generated-start}%"
#
# VARIABLE SET TEST.
#
send "&aSetting {@TESTS} TXyaml..."
set {_txyaml-set-start} to now
set {_txyaml-set-iterations} to 0
loop {_random::*}:
set yaml value "%loop-index%" from file "whatthehellisthis" from folder "pluginfolder" to loop-value
add 1 to {_txyaml-set-iterations}
if mod({_txyaml-set-iterations}, {@BREAK}) is 0:
{@PAUSE}
send "Set %{_txyaml-set-iterations}% TXyaml. %difference between now and {_txyaml-set-start}% since starting."
set {_txyaml-set-time} to difference between now and {_txyaml-set-start}
send "&6TXyaml-set test:&f %{_txyaml-set-time}%"
#
# Setup the file.
#
delete yml "test.yml"
load yml "test.yml"
#
# YAML SET TEST.
#
send "&aSetting {@TESTS} YAML values..."
set {_yaml-set-start} to now
set {_yaml-set-iterations} to 0
loop {_random::*}:
set skript-yaml value loop-index in "test" to loop-value
add 1 to {_yaml-set-iterations}
if mod({_yaml-set-iterations}, {@BREAK}) is 0:
{@PAUSE}
send "Set %{_yaml-set-iterations}% YAML values. %difference between now and {_yaml-set-start}% since starting."
save yml "test"
set {_yaml-set-time} to difference between now and {_yaml-set-start}
send "&6YAML-set test: &f%{_yaml-set-time}%"
#
# VARIABLE GET TEST.
#
send "&aGetting {@TESTS} TXyaml..."
set {_txyaml-get-start} to now
set {_txyaml-get-iterations} to 0
loop {_random::*}:
set {_txyaml-get-value} to yaml value "%loop-index%" from file "whatthehellisthis" from folder "pluginfolder"
add 1 to {_txyaml-get-iterations}
if mod({_txyaml-get-iterations}, {@BREAK}) is 0:
{@PAUSE}
send "Got %{_txyaml-get-iterations}% TXyaml values. %difference between now and {_txyaml-get-start}% since starting."
set {_txyaml-get-time} to difference between now and {_txyaml-get-start}
send "&6TXyaml-get test: &f%{_txyaml-get-time}%"
#
# YAML GET TEST.
#
send "&aGetting {@TESTS} random YAML values..."
set {_yaml-get-start} to now
set {_yaml-get-iterations} to 0
loop {_random::*}:
set {_yaml-get-value} to skript-yaml value loop-index from "test"
add 1 to {_yaml-get-iterations}
if mod({_yaml-get-iterations}, {@BREAK}) is 0:
{@PAUSE}
send "Got %{_yaml-get-iterations}% YAML values. %difference between now and {_yaml-get-start}% since starting."
set {_yaml-get-time} to difference between now and {_yaml-get-start}
send "&6YAML-get test: &f%{_yaml-get-time}%"
send "&f--- RESULTS: ---"
send "&bSet {@TESTS} TXyaml values test:&f %{_txyaml-set-time}%"
send "&3Set {@TESTS} skript-yaml values test: &f%{_yaml-set-time}%"
send "&bGet {@TESTS} TXyaml test: &f%{_txyaml-get-time}%"
send "&3Get {@TESTS} skript-yaml test: &f%{_yaml-get-time}%"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment