diff options
Diffstat (limited to 'runtime/bench2')
-rw-r--r-- | runtime/bench2/const.st | 31 | ||||
-rw-r--r-- | runtime/bench2/var.st | 27 | ||||
-rwxr-xr-x | runtime/bench2/var_bench | 17 |
3 files changed, 75 insertions, 0 deletions
diff --git a/runtime/bench2/const.st b/runtime/bench2/const.st new file mode 100644 index 00000000..a816daec --- /dev/null +++ b/runtime/bench2/const.st @@ -0,0 +1,31 @@ +# constant variable + +# This is a test of the translator's ability to detect +# when variables are never modified and to optimize +# reading of them. + +global a + +# You can put initialization in here +probe begin { + a = 1 +} + +# This gets probed millions of times. TEST gets replaces +# by the real probe point. +probe TEST { + if (a == 0) + printf("a is ZERO\n") + +} + +# something rarely called. Just here to be +# as close as possible to "var.st". +probe kernel.function("sys_delete_module") +{ +} + +probe end { + printf("a=%d\n", a) +} + diff --git a/runtime/bench2/var.st b/runtime/bench2/var.st new file mode 100644 index 00000000..ab77bb06 --- /dev/null +++ b/runtime/bench2/var.st @@ -0,0 +1,27 @@ +# simple variable + +global a + +# You can put initialization in here +probe begin { + a = 1 +} + +# This gets probed millions of times. TEST gets replaces +# by the real probe point. +probe TEST { + if (a == 0) + printf("a is ZERO\n") +} + +# something rarely called. Just to force the optimizer +# to not optimize access to "a" +probe kernel.function("sys_delete_module") +{ + a = 2 +} + +probe end { + printf("a=%d\n", a) +} + diff --git a/runtime/bench2/var_bench b/runtime/bench2/var_bench new file mode 100755 index 00000000..a45d9170 --- /dev/null +++ b/runtime/bench2/var_bench @@ -0,0 +1,17 @@ +#!/usr/bin/env ruby +load './bench.rb' + +# This is a test of the translator's ability to detect +# when variables are never modified and to optimize +# reading of them. + +["var.st","const.st"].each do |file| + File.open(file,"r") do |f| + desc = f.gets.sub(/^#/,'').strip + test = Stapbench.new(desc) + test.file = file + test.run + test.print + end +end + |