/mobile Handheld Friendly website
x64 Ubuntu : Intel® Q6600® quad-core |
Each table row shows performance measurements for this Java 7 program with a particular command-line input value N.
| N | CPU secs | Elapsed secs | Memory KB | Code B | ≈ CPU Load |
|---|---|---|---|---|---|
| 12 | 0.14 | 0.12 | ? | 607 | 17% 0% 92% 17% |
| 16 | 0.85 | 0.69 | 61,748 | 607 | 10% 54% 31% 32% |
| 20 | 96.62 | 32.93 | 154,928 | 607 | 66% 85% 78% 65% |
Read the ↓ make, command line, and program output logs to see how this program was run.
Read binary-trees-redux benchmark to see what this program should do.
java version "1.7.0_11"
Java(TM) SE Runtime Environment (build 1.7.0_11-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)
/* The Computer Language Benchmarks Game http://benchmarksgame.alioth.debian.org/ contributed by Jarkko Miettinen */ public class binarytreesredux { private final static int minDepth = 4; public static void main(String[] args){ int n = 0; if (args.length > 0) n = Integer.parseInt(args[0]); int maxDepth = (minDepth + 2 > n) ? minDepth + 2 : n; int stretchDepth = maxDepth + 1; int check = (TreeNode.bottomUpTree(0,stretchDepth)).itemCheck(); System.out.println("stretch tree of depth "+stretchDepth+"\t check: " + check); TreeNode longLivedTree = TreeNode.bottomUpTree(0,maxDepth); for (int depth=minDepth; depth<=maxDepth; depth+=2){ int iterations = 1 << (maxDepth - depth + minDepth); check = 0; for (int i=1; i<=iterations; i++){ check += (TreeNode.bottomUpTree(i,depth)).itemCheck(); check += (TreeNode.bottomUpTree(-i,depth)).itemCheck(); } System.out.println((iterations*2) + "\t trees of depth " + depth + "\t check: " + check); } System.out.println("long lived tree of depth " + maxDepth + "\t check: "+ longLivedTree.itemCheck()); } private static class TreeNode { private TreeNode left, right; private int item; TreeNode(int item){ this.item = item; } private static TreeNode bottomUpTree(int item, int depth){ if (depth>0){ return new TreeNode( bottomUpTree(2*item-1, depth-1) , bottomUpTree(2*item, depth-1) , item ); } else { return new TreeNode(item); } } TreeNode(TreeNode left, TreeNode right, int item){ this.left = left; this.right = right; this.item = item; } private int itemCheck(){ // if necessary deallocate here if (left==null) return item; else return item + left.itemCheck() - right.itemCheck(); } } }
Sun, 20 Jan 2013 14:58:44 GMT MAKE: mv binarytreesredux.java-2.java binarytreesredux.java /usr/local/src/jdk1.7.0_11/bin/javac binarytreesredux.java 0.71s to complete and log all make actions COMMAND LINE: /usr/local/src/jdk1.7.0_11/bin/java -Xms128m -Xmx128m -server -XX:+TieredCompilation -XX:+AggressiveOpts binarytreesredux 20 PROGRAM OUTPUT: stretch tree of depth 21 check: -1 2097152 trees of depth 4 check: -2097152 524288 trees of depth 6 check: -524288 131072 trees of depth 8 check: -131072 32768 trees of depth 10 check: -32768 8192 trees of depth 12 check: -8192 2048 trees of depth 14 check: -2048 512 trees of depth 16 check: -512 128 trees of depth 18 check: -128 32 trees of depth 20 check: -32 long lived tree of depth 20 check: -1