File: results
Author: Jeff Bilmes
Created: Tue Oct 30 11:31:21 1990
Copyright (C) International Computer Science Institute, 1990

The results of comparing the performance of Sather and C++ using the
benchmarks in this directory. The average Sather/C++ ratio is 1.0.
All the benchmarks were run on a sun 4/280 under SunOS 4.1. Sather used cs 
with no options and cc -O; C++ used g++ -O
(g++ version 1.39.0 for the SPARC).
The first section is a comparison of the ahmad benchmarks. The
second is the Stanford Integer Benchmark Suite.
The ratios do not include the deep_copy version of xqueens (which is 28 times 
slower than the non deep_copy version). 

Sather seems to have a small performance gain due to the fact that sun CC
is better at figuring out when to code in a leaf routine for the sparc.
(A leaf routine is one that will not call any other functions and can be
optimized to use few registers (doesn't need its own locals) and so doesn't
need save/restore instructions around it. It, thus, avoids the potential expence
of causing a save-register-window-onto-stack kernel trap). Ahmads 
benchmarks 2 and 3 are the best examples of this. The Sather array offset storing 
doesn't seem to be gaining us as much as we hoped compared to g++ since g++ 
does inline bit shift instruction optimizations for array index calculation. 
Compared to multiplications, though, I'm fairely sure it would be a major 
performance gain.

================================================================================

Ahmad Benchmarks

Running sather/c++ comparisons on icsid
-----------------------------------------------------------------
SATHER benchmark num 1, 1000000 iterations
User time: 1.260000 System time: 0.750000 Total: 2.010000
1.3u 0.9s 0:03 66% 0+2712k 3+1io 16pf+0w
C++ benchmark num 1, 1000000 iterations
User: 0.680000 System: 0.790000 CPU 1.470000
0.6u 0.9s 0:02 70% 0+1824k 2+0io 12pf+0w
-----------------------------------------------------------------
SATHER benchmark num 2, 1000000 iterations
User time: 3.380000 System time: 0.050000 Total: 3.430000
3.4u 0.1s 0:06 53% 0+352k 0+0io 0pf+0w
C++ benchmark num 2, 1000000 iterations
User: 3.910000 System: 0.000000 CPU 3.910000
3.9u 0.0s 0:06 56% 0+96k 0+0io 0pf+0w
-----------------------------------------------------------------
SATHER benchmark num 3, 1000000 iterations
User time: 3.300000 System time: 0.010000 Total: 3.310000
3.3u 0.0s 0:05 58% 0+352k 0+0io 0pf+0w
C++ benchmark num 3, 1000000 iterations
User: 3.970000 System: 0.100000 CPU 4.070000
3.9u 0.1s 0:07 53% 0+104k 0+0io 0pf+0w
-----------------------------------------------------------------
SATHER benchmark num 4, 1000000 iterations
User time: 11.209999 System time: 0.050000 Total: 11.259999
11.2u 0.1s 0:22 51% 0+352k 0+0io 0pf+0w
C++ benchmark num 4, 1000000 iterations
User: 10.650000 System: 0.050000 CPU 10.700000
10.6u 0.0s 0:16 66% 0+112k 0+0io 0pf+0w
-----------------------------------------------------------------
SATHER benchmark num 5, 1000000 iterations
User time: 5.140000 System time: 0.020000 Total: 5.160000
5.1u 0.1s 0:05 99% 0+352k 0+0io 0pf+0w
C++ benchmark num 5, 1000000 iterations
User: 6.340000 System: 0.010000 CPU 6.350000
6.3u 0.0s 0:06 99% 0+104k 0+0io 0pf+0w
-----------------------------------------------------------------
SATHER benchmark num 6, 1000000 iterations
User time: 13.030000 System time: 0.090000 Total: 13.120000
13.0u 0.1s 0:13 98% 0+352k 0+0io 0pf+0w
C++ benchmark num 6, 1000000 iterations
User: 13.160000 System: 0.060000 CPU 13.220000
13.1u 0.0s 0:13 98% 0+104k 0+0io 0pf+0w
76.4u 3.3s 1:51r 71% 0t+336d (336tot/272max) 10+1io 591r+32pf+0w

Average Sather/C++ ration = 1.07
 
================================================================================

Stanford Benchmarks

icsid (sather) 2 > runbench
Running all benchmarks
Measuring Performance of bubble
User time: 0.257000 System time: 0.003000 Total: 0.260000
Measuring Performance of xbubble
User time: 0.250000 System time: 0.001000 Total: 0.251000
Measuring Performance of tree
User time: 0.260000 System time: 0.044000 Total: 0.304000
Measuring Performance of xtree
User time: 0.265000 System time: 0.037000 Total: 0.302000
Measuring Performance of puzzle
User time: 1.200000 System time: 0.005000 Total: 1.205000
Measuring Performance of quick
User time: 0.138000 System time: 0.007000 Total: 0.145000
Measuring Performance of xquick
User time: 0.145000 System time: 0.004000 Total: 0.149000
Measuring Performance of intmm
User time: 0.293000 System time: 0.002000 Total: 0.295000
Measuring Performance of xintmm
User time: 0.296000 System time: 0.009000 Total: 0.305000
Measuring Performance of perm
User time: 0.148000 System time: 0.000000 Total: 0.148000
Measuring Performance of xperm
User time: 0.150000 System time: 0.002000 Total: 0.152000
Measuring Performance of towers
User time: 0.226000 System time: 0.002000 Total: 0.228000
Measuring Performance of xtowers
User time: 0.108000 System time: 0.002000 Total: 0.110000
Measuring Performance of queens
User time: 0.047000 System time: 0.002000 Total: 0.049000
Measuring Performance of xqueens without deep copy
User time: 0.098000 System time: 0.002000 Total: 0.100000
Measuring Performance of xqueens with deep copy
User time: 2.639000 System time: 0.148000 Total: 2.787000


icsid (c++) 4 > benchmarks
C++ benchmarks
Measuring Performance of bubble
User: 0.177000 System: 0.000000 CPU 0.177000
Measuring Performance of xbubble
User: 0.171000 System: 0.003000 CPU 0.174000
Measuring Performance of tree
User: 0.935000 System: 0.040000 CPU 0.975000
Measuring Performance of xtree
User: 0.959000 System: 0.054000 CPU 1.013000
Measuring Performance of puzzle
User: 1.014000 System: 0.014000 CPU 1.028000
Measuring Performance of quick
User: 0.119000 System: 0.006000 CPU 0.125000
Measuring Performance of xquick
User: 0.120000 System: 0.007000 CPU 0.127000
Measuring Performance of intmm
User: 0.285000 System: 0.010000 CPU 0.295000
Measuring Performance of xintmm
User: 0.273000 System: 0.006000 CPU 0.279000
Measuring Performance of perm
User: 0.143000 System: 0.000000 CPU 0.143000
Measuring Performance of xperm
User: 0.151000 System: 0.000000 CPU 0.151000
Measuring Performance of towers
User: 0.204000 System: 0.001000 CPU 0.205000
Measuring Performance of xtowers
User: 0.155000 System: 0.000000 CPU 0.155000
Measuring Performance of queens
User: 0.110000 System: 0.001000 CPU 0.111000
Measuring Performance of xqueens
User: 0.078000 System: 0.000000 CPU 0.078000

Average Sather/C++ ratio = 0.98

================================================================================
