From 5f0f425da8c468aa3961033009df03eced49a161 Mon Sep 17 00:00:00 2001 From: cxl Date: Tue, 28 Apr 2020 09:01:35 +0000 Subject: [PATCH] .benchmarks git-svn-id: svn://ultimatepp.org/upp/trunk@14393 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- benchmarks/BenchEsc/BenchEsc.upp | 11 +++++++++ benchmarks/BenchEsc/Esc.cpp | 38 ++++++++++++++++++++++++++++++++ benchmarks/BenchEsc/test.esc | 14 ++++++++++++ benchmarks/Index/Index.cpp | 1 + benchmarks/RGBAFill/RGBAFill.upp | 9 ++++++++ benchmarks/RGBAFill/main.cpp | 23 +++++++++++++++++++ 6 files changed, 96 insertions(+) create mode 100644 benchmarks/BenchEsc/BenchEsc.upp create mode 100644 benchmarks/BenchEsc/Esc.cpp create mode 100644 benchmarks/BenchEsc/test.esc create mode 100644 benchmarks/RGBAFill/RGBAFill.upp create mode 100644 benchmarks/RGBAFill/main.cpp diff --git a/benchmarks/BenchEsc/BenchEsc.upp b/benchmarks/BenchEsc/BenchEsc.upp new file mode 100644 index 000000000..7a5dd0c24 --- /dev/null +++ b/benchmarks/BenchEsc/BenchEsc.upp @@ -0,0 +1,11 @@ +uses + Core, + Esc; + +file + test.esc, + Esc.cpp; + +mainconfig + "" = ""; + diff --git a/benchmarks/BenchEsc/Esc.cpp b/benchmarks/BenchEsc/Esc.cpp new file mode 100644 index 000000000..2d03e7e45 --- /dev/null +++ b/benchmarks/BenchEsc/Esc.cpp @@ -0,0 +1,38 @@ +#include + +using namespace Upp; + +CONSOLE_APP_MAIN +{ + RDUMP(sizeof(EscValue)); + + String code = LoadFile(GetDataFile("test.esc")); + ArrayMap global; + + StdLib(global); + + try { + Scan(global, code); + EscValue primes; + for(int i = 0; i < 100; i++) + { + RTIMING("run"); + primes = Execute(global, "sieve", INT_MAX); + } + RDUMP(primes); + } + catch(CParser::Error e) { + RLOG(e); + } + + RLOG(""); + RLOG("-----------------------"); + + DUMP(global.GetAdd("result")); + +// EscValue v; +// v.SetArray().Add(123); +// EscValue v2 = v; +// v.SetArray().Add(v); +// DUMP(v); +} diff --git a/benchmarks/BenchEsc/test.esc b/benchmarks/BenchEsc/test.esc new file mode 100644 index 000000000..0269d2a8a --- /dev/null +++ b/benchmarks/BenchEsc/test.esc @@ -0,0 +1,14 @@ +sieve() +{ + N = 2000; + sieve = N * [1]; + prime = []; + for(i = 2; i < N; i++) { + if(sieve[i]) { + prime[] = i; + for(j = i; j < N; j += i) + sieve[j] = 0; + } + } + return prime; +} diff --git a/benchmarks/Index/Index.cpp b/benchmarks/Index/Index.cpp index d9855c476..575964234 100644 --- a/benchmarks/Index/Index.cpp +++ b/benchmarks/Index/Index.cpp @@ -33,6 +33,7 @@ CONSOLE_APP_MAIN // for (int j = 0; j < jsize; ++j) // v[j].Sweep(); } + return; { Vector > v; v.SetCount(v_num); diff --git a/benchmarks/RGBAFill/RGBAFill.upp b/benchmarks/RGBAFill/RGBAFill.upp new file mode 100644 index 000000000..5872304d3 --- /dev/null +++ b/benchmarks/RGBAFill/RGBAFill.upp @@ -0,0 +1,9 @@ +uses + CtrlLib; + +file + main.cpp; + +mainconfig + "" = "GUI"; + diff --git a/benchmarks/RGBAFill/main.cpp b/benchmarks/RGBAFill/main.cpp new file mode 100644 index 000000000..c3f3b950a --- /dev/null +++ b/benchmarks/RGBAFill/main.cpp @@ -0,0 +1,23 @@ +#include + +using namespace Upp; + +GUI_APP_MAIN +{ + Color c = Red(); + + int len = 4000 * 2000; + + Buffer b(len); + + for(int i = 0; i < 1000; i++) { + { + RTIMING("memsetd"); + memsetd(b, *(dword*)&(c), len); + } + { + RTIMING("Fill"); + Fill(b, c, len); + } + } +}