Data structure: benchmarks arguments passing 30/16030/3
Clément DAVID [Wed, 25 Feb 2015 08:34:31 +0000 (09:34 +0100)]
The purpose of those benchmarks is to compare raw arguments passing
versus tlist argument passing with and without a data resize (stack
reuse on Scilab 5).

Change-Id: I56d17adf290995cafdc2c811a6a03ada807a1eaf

scilab/modules/data_structures/tests/benchmarks/arguments.tst [new file with mode: 0644]
scilab/modules/data_structures/tests/benchmarks/arguments_resize.tst [new file with mode: 0644]
scilab/modules/data_structures/tests/benchmarks/arguments_tlist.tst [new file with mode: 0644]
scilab/modules/data_structures/tests/benchmarks/arguments_tlist_resize.tst [new file with mode: 0644]

diff --git a/scilab/modules/data_structures/tests/benchmarks/arguments.tst b/scilab/modules/data_structures/tests/benchmarks/arguments.tst
new file mode 100644 (file)
index 0000000..9b51c70
--- /dev/null
@@ -0,0 +1,27 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2015 - Scilab Enterprises - Clement DAVID
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+//==============================================================================
+// Pass raw values as rhs / lhs
+//==============================================================================
+
+// <-- BENCH NB RUN : 10 -->
+
+stacksize("max");
+
+foo1 = zeros(4096,4096);
+foo2 = zeros(4096,4096);
+foo3 = zeros(4096,4096);
+
+function foo3=computation(foo1, foo2)
+    foo3 = foo1 + foo2
+endfunction
+
+// <-- BENCH START -->
+foo3 = computation(foo1, foo2);
+// <-- BENCH END -->
+
diff --git a/scilab/modules/data_structures/tests/benchmarks/arguments_resize.tst b/scilab/modules/data_structures/tests/benchmarks/arguments_resize.tst
new file mode 100644 (file)
index 0000000..dbadb54
--- /dev/null
@@ -0,0 +1,27 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2015 - Scilab Enterprises - Clement DAVID
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+//==============================================================================
+// Pass raw values as rhs / lhs
+//==============================================================================
+
+// <-- BENCH NB RUN : 10 -->
+
+stacksize("max");
+
+foo1 = zeros(4096,4096);
+foo2 = zeros(4096,4096);
+foo3 = [];
+
+function foo3=computation(foo1, foo2)
+    foo3 = foo1 + foo2
+endfunction
+
+// <-- BENCH START -->
+foo3 = computation(foo1, foo2);
+// <-- BENCH END -->
+
diff --git a/scilab/modules/data_structures/tests/benchmarks/arguments_tlist.tst b/scilab/modules/data_structures/tests/benchmarks/arguments_tlist.tst
new file mode 100644 (file)
index 0000000..87cc82b
--- /dev/null
@@ -0,0 +1,29 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2015 - Scilab Enterprises - Clement DAVID
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+//==============================================================================
+// Pass tlist as rhs / lhs, let scilab reuse the allocated space
+//==============================================================================
+
+// <-- BENCH NB RUN : 10 -->
+
+stacksize("max");
+
+data = tlist(["mydata" "foo1" "foo2" "foo3"], [], [], []);
+
+data.foo1 = zeros(4096,4096);
+data.foo2 = zeros(4096,4096);
+data.foo3 = zeros(4096,4096);
+
+function data=computation(data)
+    data.foo3 = data.foo1 + data.foo2
+endfunction
+
+// <-- BENCH START -->
+data = computation(data);
+// <-- BENCH END -->
+
diff --git a/scilab/modules/data_structures/tests/benchmarks/arguments_tlist_resize.tst b/scilab/modules/data_structures/tests/benchmarks/arguments_tlist_resize.tst
new file mode 100644 (file)
index 0000000..b0c9304
--- /dev/null
@@ -0,0 +1,28 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2015 - Scilab Enterprises - Clement DAVID
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+//==============================================================================
+// Pass tlist as rhs / lhs
+//==============================================================================
+
+// <-- BENCH NB RUN : 10 -->
+
+stacksize("max");
+
+data = tlist(["mydata" "foo1" "foo2" "foo3"], [], [], []);
+
+data.foo1 = zeros(4096,4096);
+data.foo2 = zeros(4096,4096);
+
+function data=computation(data)
+    data.foo3 = data.foo1 + data.foo2
+endfunction
+
+// <-- BENCH START -->
+data = computation(data);
+// <-- BENCH END -->
+