From d75abe3505126ecb579cc68cbe340abfb101c3bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edvard=20Th=C3=B6rnros?= Date: Wed, 17 Feb 2021 23:10:18 +0100 Subject: add numbers benchmark --- progs/bench/add.sy | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 progs/bench/add.sy (limited to 'progs/bench') diff --git a/progs/bench/add.sy b/progs/bench/add.sy new file mode 100644 index 0000000..bf3a867 --- /dev/null +++ b/progs/bench/add.sy @@ -0,0 +1,6 @@ +// Adds the numbers 0 to 10000 +sum := 0 +for i := 0, i <= 1000000, i += 1 { + sum += i +} +sum <=> 500000500000 -- cgit v1.2.1 From 798c6feac22d94019e1247ec57c17fe3bc29fdb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edvard=20Th=C3=B6rnros?= Date: Wed, 17 Feb 2021 23:10:32 +0100 Subject: add fibonacci benchmark --- progs/bench/fib.sy | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 progs/bench/fib.sy (limited to 'progs/bench') diff --git a/progs/bench/fib.sy b/progs/bench/fib.sy new file mode 100644 index 0000000..a6504bf --- /dev/null +++ b/progs/bench/fib.sy @@ -0,0 +1,10 @@ +// The worst implementation of fibonacci calculations +// possible. FYI, it can be done in constant time. +fib :: fn a:int -> int { + if a < 2 { + ret a + } + ret fib(a - 1) + fib(a - 2) +} +// 23 is around where things start getting slow. +fib(28) <=> 317811 -- cgit v1.2.1 From 830c9cbe4bc944f57dcad6f9b78629ba7c402e36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edvard=20Th=C3=B6rnros?= Date: Wed, 17 Feb 2021 23:13:10 +0100 Subject: add iterative fibonacci benchmark --- progs/bench/fib-iter.sy | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 progs/bench/fib-iter.sy (limited to 'progs/bench') diff --git a/progs/bench/fib-iter.sy b/progs/bench/fib-iter.sy new file mode 100644 index 0000000..b6ff3d8 --- /dev/null +++ b/progs/bench/fib-iter.sy @@ -0,0 +1,14 @@ +// A fibonacci implementation that is a little +// less awefull. But we run it 10000 times instead. +j := 0 +for , j < 10000, j = j + 1 { + a := 0 + b := 1 + + for i := 0, i < 50, i = i + 1 { + c := a + a = b + b = c + b + } + a <=> 12586269025 +} -- cgit v1.2.1 From d106d7b0aa514c727099b1ee9bde94ec8c4d68fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edvard=20Th=C3=B6rnros?= Date: Wed, 17 Feb 2021 23:39:14 +0100 Subject: rename tests to be valid identifiers --- progs/bench/add.sy | 6 ------ progs/bench/fib-iter.sy | 14 -------------- progs/bench/fib_iter.sy | 14 ++++++++++++++ progs/bench/sum.sy | 6 ++++++ 4 files changed, 20 insertions(+), 20 deletions(-) delete mode 100644 progs/bench/add.sy delete mode 100644 progs/bench/fib-iter.sy create mode 100644 progs/bench/fib_iter.sy create mode 100644 progs/bench/sum.sy (limited to 'progs/bench') diff --git a/progs/bench/add.sy b/progs/bench/add.sy deleted file mode 100644 index bf3a867..0000000 --- a/progs/bench/add.sy +++ /dev/null @@ -1,6 +0,0 @@ -// Adds the numbers 0 to 10000 -sum := 0 -for i := 0, i <= 1000000, i += 1 { - sum += i -} -sum <=> 500000500000 diff --git a/progs/bench/fib-iter.sy b/progs/bench/fib-iter.sy deleted file mode 100644 index b6ff3d8..0000000 --- a/progs/bench/fib-iter.sy +++ /dev/null @@ -1,14 +0,0 @@ -// A fibonacci implementation that is a little -// less awefull. But we run it 10000 times instead. -j := 0 -for , j < 10000, j = j + 1 { - a := 0 - b := 1 - - for i := 0, i < 50, i = i + 1 { - c := a - a = b - b = c + b - } - a <=> 12586269025 -} diff --git a/progs/bench/fib_iter.sy b/progs/bench/fib_iter.sy new file mode 100644 index 0000000..b6ff3d8 --- /dev/null +++ b/progs/bench/fib_iter.sy @@ -0,0 +1,14 @@ +// A fibonacci implementation that is a little +// less awefull. But we run it 10000 times instead. +j := 0 +for , j < 10000, j = j + 1 { + a := 0 + b := 1 + + for i := 0, i < 50, i = i + 1 { + c := a + a = b + b = c + b + } + a <=> 12586269025 +} diff --git a/progs/bench/sum.sy b/progs/bench/sum.sy new file mode 100644 index 0000000..bf3a867 --- /dev/null +++ b/progs/bench/sum.sy @@ -0,0 +1,6 @@ +// Adds the numbers 0 to 10000 +sum := 0 +for i := 0, i <= 1000000, i += 1 { + sum += i +} +sum <=> 500000500000 -- cgit v1.2.1 From 51949c9a917385cff9925830a45bd78385930686 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edvard=20Th=C3=B6rnros?= Date: Wed, 17 Feb 2021 23:48:32 +0100 Subject: lower the times to something more maintainable --- progs/bench/fib.sy | 2 +- progs/bench/fib_iter.sy | 4 ++-- progs/bench/sum.sy | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) (limited to 'progs/bench') diff --git a/progs/bench/fib.sy b/progs/bench/fib.sy index a6504bf..bd1aaa4 100644 --- a/progs/bench/fib.sy +++ b/progs/bench/fib.sy @@ -7,4 +7,4 @@ fib :: fn a:int -> int { ret fib(a - 1) + fib(a - 2) } // 23 is around where things start getting slow. -fib(28) <=> 317811 +fib(23) <=> 28657 diff --git a/progs/bench/fib_iter.sy b/progs/bench/fib_iter.sy index b6ff3d8..0e188e8 100644 --- a/progs/bench/fib_iter.sy +++ b/progs/bench/fib_iter.sy @@ -1,7 +1,7 @@ // A fibonacci implementation that is a little -// less awefull. But we run it 10000 times instead. +// less awefull. But we run it 1000 times instead. j := 0 -for , j < 10000, j = j + 1 { +for , j < 1000, j = j + 1 { a := 0 b := 1 diff --git a/progs/bench/sum.sy b/progs/bench/sum.sy index bf3a867..bb6870f 100644 --- a/progs/bench/sum.sy +++ b/progs/bench/sum.sy @@ -1,6 +1,6 @@ // Adds the numbers 0 to 10000 sum := 0 -for i := 0, i <= 1000000, i += 1 { +for i := 0, i <= 100000, i += 1 { sum += i } -sum <=> 500000500000 +sum <=> 5000050000 -- cgit v1.2.1 From 367d7b32a2825f6e4c8ef3b5423ceb1cd2b62bd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edvard=20Th=C3=B6rnros?= Date: Thu, 18 Feb 2021 20:12:06 +0100 Subject: Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Gustav Sörnäs --- progs/bench/fib.sy | 2 +- progs/bench/fib_iter.sy | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'progs/bench') diff --git a/progs/bench/fib.sy b/progs/bench/fib.sy index bd1aaa4..de68f5c 100644 --- a/progs/bench/fib.sy +++ b/progs/bench/fib.sy @@ -1,4 +1,4 @@ -// The worst implementation of fibonacci calculations +// The worst implementation of Fibonacci calculations // possible. FYI, it can be done in constant time. fib :: fn a:int -> int { if a < 2 { diff --git a/progs/bench/fib_iter.sy b/progs/bench/fib_iter.sy index 0e188e8..c51469a 100644 --- a/progs/bench/fib_iter.sy +++ b/progs/bench/fib_iter.sy @@ -1,5 +1,5 @@ -// A fibonacci implementation that is a little -// less awefull. But we run it 1000 times instead. +// A Fibonacci implementation that is a little +// less awful. But we run it 1000 times instead. j := 0 for , j < 1000, j = j + 1 { a := 0 -- cgit v1.2.1