summaryrefslogtreecommitdiff
path: root/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/binarytrees/binarytrees-serial.cs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/JIT/Performance/CodeQuality/BenchmarksGame/binarytrees/binarytrees-serial.cs')
-rw-r--r--tests/src/JIT/Performance/CodeQuality/BenchmarksGame/binarytrees/binarytrees-serial.cs40
1 files changed, 33 insertions, 7 deletions
diff --git a/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/binarytrees/binarytrees-serial.cs b/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/binarytrees/binarytrees-serial.cs
index 6de000caea..e84c83174c 100644
--- a/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/binarytrees/binarytrees-serial.cs
+++ b/tests/src/JIT/Performance/CodeQuality/BenchmarksGame/binarytrees/binarytrees-serial.cs
@@ -14,23 +14,43 @@
*/
using System;
+using Microsoft.Xunit.Performance;
+
+[assembly: OptimizeForBenchmarks]
+[assembly: MeasureGCCounts]
namespace BenchmarksGame
{
- class BinaryTrees
+ public class BinaryTrees_2
{
const int minDepth = 4;
- public static void Main(String[] args)
+ public static int Main(String[] args)
{
int n = 0;
if (args.Length > 0) n = Int32.Parse(args[0]);
+ int check = Bench(n, true);
+ int expected = 4398;
+
+ // Return 100 on success, anything else on failure.
+ return check - expected + 100;
+ }
+
+ [Benchmark(InnerIterationCount = 7)]
+ public static void RunBench()
+ {
+ Benchmark.Iterate(() => Bench(16, false));
+ }
+
+ static int Bench(int n, bool verbose)
+ {
int maxDepth = Math.Max(minDepth + 2, n);
int stretchDepth = maxDepth + 1;
int check = (TreeNode.bottomUpTree(stretchDepth)).itemCheck();
- Console.WriteLine("stretch tree of depth {0}\t check: {1}", stretchDepth, check);
+ int checkSum = check;
+ if (verbose) Console.WriteLine("stretch tree of depth {0}\t check: {1}", stretchDepth, check);
TreeNode longLivedTree = TreeNode.bottomUpTree(maxDepth);
@@ -43,13 +63,19 @@ namespace BenchmarksGame
{
check += (TreeNode.bottomUpTree(depth)).itemCheck();
}
+ checkSum += check;
- Console.WriteLine("{0}\t trees of depth {1}\t check: {2}",
- iterations, depth, check);
+ if (verbose)
+ Console.WriteLine("{0}\t trees of depth {1}\t check: {2}", iterations, depth, check);
}
- Console.WriteLine("long lived tree of depth {0}\t check: {1}",
- maxDepth, longLivedTree.itemCheck());
+ check = longLivedTree.itemCheck();
+ checkSum += check;
+
+ if (verbose)
+ Console.WriteLine("long lived tree of depth {0}\t check: {1}", maxDepth, check);
+
+ return checkSum;
}