v03i060: xbench -- benchmark X servers, Part03/04
Dan Heller
argv at island.uu.net
Wed Mar 29 04:07:44 AEST 1989
Submitted-by: Claus Gittinger <unido!sinix!claus>
Posting-number: Volume 3, Issue 60
Archive-name: xbench/part03
#! /bin/sh
# This is a shell archive. Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file". To overwrite existing
# files, type "sh file -c". You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g.. If this archive is complete, you
# will see the following message at the end:
# "End of archive 3 (of 4)."
# Contents: benches.h main.c results/sun3-160.R2.out
# results/sun3-50.R3.out scripts/detail.awk scripts/xstones.awk
# Wrapped by x11 at babel on Thu Mar 23 14:08:00 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'benches.h' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'benches.h'\"
else
echo shar: Extracting \"'benches.h'\" \(12065 characters\)
sed "s/^X//" >'benches.h' <<'END_OF_FILE'
typedef int (*FUNCPTR)();
X#define NOFUNC ((FUNCPTR)0)
X
extern hline_setup(), hline_bench(), hline_cleanup(), hline_msg();
extern vline_setup(), vline_bench(), vline_cleanup(), vline_msg();
extern sline_setup(), sline_bench(), sline_cleanup(), sline_msg();
extern line_setup(), line_bench(), line_cleanup(), line_msg();
extern dline_setup(), dline_bench(), dline_cleanup(), dline_msg();
extern wline_setup(), wline_bench(), wline_cleanup(), wline_msg();
extern rects_setup(), rects_bench(), rects_cleanup(), rects_msg();
extern arcs_setup(), arcs_bench(), arcs_cleanup(), arcs_msg();
extern filledarcs_setup(), filledarcs_bench(), filledarcs_cleanup(), filledarcs_msg();
extern filledpoly_setup(), filledpoly_bench(), filledpoly_cleanup(), filledpoly_msg();
extern fillrects_setup(), fillrects_bench(), fillrects_cleanup(), fillrects_msg();
extern tiledrects_setup(), tiledrects_bench(), tiledrects_cleanup(), tiledrects_msg();
extern stippledrects_setup(), stippledrects_bench(), stippledrects_cleanup(), stippledrects_msg();
extern invrects_setup(), invrects_bench(), invrects_cleanup(), invrects_msg();
extern imagestring_setup(), imagestring_bench(), imagestring_cleanup(), imagestring_msg();
extern screencopy_setup(), screencopy_bench(), screencopy_cleanup(), screencopy_msg();
extern scroll_setup(), scroll_bench(), scroll_cleanup(), scroll_msg();
extern pixmapcopy_setup(), pixmapcopy_bench(), pixmapcopy_cleanup(), pixmapcopy_msg();
extern bitmapcopy_setup(), bitmapcopy_bench(), bitmapcopy_cleanup(), bitmapcopy_msg();
extern complex1_setup(), complex1_bench(), complex1_cleanup(), complex1_msg();
X
struct benchFunctionDescription {
X char *name; /* name of bench */
X int level; /* its level */
X FUNCPTR setupFunc; /* functions to do it ... */
X FUNCPTR benchFunc;
X FUNCPTR cleanupFunc;
X FUNCPTR messageFunc;
X unsigned benchArg; /* argument to function */
X} benchList[] = {
X/* name level functions */
X
X { "line2", 2, line_setup, line_bench, line_cleanup, line_msg, 2 },
X { "line10", 1, line_setup, line_bench, line_cleanup, line_msg, 10 },
X { "line100", 1, line_setup, line_bench, line_cleanup, line_msg, 100 },
X { "line400", 1, line_setup, line_bench, line_cleanup, line_msg, 400 },
X { "line500", 2, line_setup, line_bench, line_cleanup, line_msg, 500 },
X
X { "hline2", 3, hline_setup, hline_bench, hline_cleanup, hline_msg, 2 },
X { "hline10", 2, hline_setup, hline_bench, hline_cleanup, hline_msg, 10 },
X { "hline50", 4, hline_setup, hline_bench, hline_cleanup, hline_msg, 50 },
X { "hline100", 2, hline_setup, hline_bench, hline_cleanup, hline_msg, 100 },
X { "hline200", 4, hline_setup, hline_bench, hline_cleanup, hline_msg, 200 },
X { "hline300", 4, hline_setup, hline_bench, hline_cleanup, hline_msg, 300 },
X { "hline400", 2, hline_setup, hline_bench, hline_cleanup, hline_msg, 400 },
X { "hline500", 3, hline_setup, hline_bench, hline_cleanup, hline_msg, 500 },
X { "hline600", 4, hline_setup, hline_bench, hline_cleanup, hline_msg, 600 },
X { "hline700", 4, hline_setup, hline_bench, hline_cleanup, hline_msg, 700 },
X { "hline800", 4, hline_setup, hline_bench, hline_cleanup, hline_msg, 800 },
X
X { "vline2", 3, vline_setup, vline_bench, vline_cleanup, vline_msg, 2 },
X { "vline10", 2, vline_setup, vline_bench, vline_cleanup, vline_msg, 10 },
X { "vline50", 4, vline_setup, vline_bench, vline_cleanup, vline_msg, 50 },
X { "vline100", 2, vline_setup, vline_bench, vline_cleanup, vline_msg, 100 },
X { "vline200", 4, vline_setup, vline_bench, vline_cleanup, vline_msg, 200 },
X { "vline300", 4, vline_setup, vline_bench, vline_cleanup, vline_msg, 300 },
X { "vline400", 2, vline_setup, vline_bench, vline_cleanup, vline_msg, 400 },
X { "vline500", 3, vline_setup, vline_bench, vline_cleanup, vline_msg, 500 },
X { "vline600", 4, vline_setup, vline_bench, vline_cleanup, vline_msg, 600 },
X { "vline700", 4, vline_setup, vline_bench, vline_cleanup, vline_msg, 700 },
X { "vline800", 4, vline_setup, vline_bench, vline_cleanup, vline_msg, 800 },
X
X { "sline2", 3, sline_setup, sline_bench, sline_cleanup, sline_msg, 2 },
X { "sline10", 2, sline_setup, sline_bench, sline_cleanup, sline_msg, 10 },
X { "sline100", 2, sline_setup, sline_bench, sline_cleanup, sline_msg, 100 },
X { "sline400", 2, sline_setup, sline_bench, sline_cleanup, sline_msg, 400 },
X { "sline500", 3, sline_setup, sline_bench, sline_cleanup, sline_msg, 500 },
X
X { "dline2", 2, dline_setup, dline_bench, dline_cleanup, dline_msg, 2 },
X { "dline10", 1, dline_setup, dline_bench, dline_cleanup, dline_msg, 10 },
X { "dline100", 1, dline_setup, dline_bench, dline_cleanup, dline_msg, 100 },
X { "dline400", 1, dline_setup, dline_bench, dline_cleanup, dline_msg, 400 },
X { "dline500", 2, dline_setup, dline_bench, dline_cleanup, dline_msg, 500 },
X
X { "wline2", 2, wline_setup, wline_bench, wline_cleanup, wline_msg, 2 },
X { "wline10", 1, wline_setup, wline_bench, wline_cleanup, wline_msg, 10 },
X { "wline100", 1, wline_setup, wline_bench, wline_cleanup, wline_msg, 100 },
X { "wline400", 1, wline_setup, wline_bench, wline_cleanup, wline_msg, 400 },
X { "wline500", 2, wline_setup, wline_bench, wline_cleanup, wline_msg, 500 },
X
X { "rects2", 2, rects_setup, rects_bench, rects_cleanup, rects_msg, 2 },
X { "rects10", 1, rects_setup, rects_bench, rects_cleanup, rects_msg, 10 },
X { "rects100", 1, rects_setup, rects_bench, rects_cleanup, rects_msg, 100 },
X { "rects400", 1, rects_setup, rects_bench, rects_cleanup, rects_msg, 400 },
X { "rects500", 2, rects_setup, rects_bench, rects_cleanup, rects_msg, 500 },
X
X { "fillrects2", 2, fillrects_setup, fillrects_bench, fillrects_cleanup, fillrects_msg, 2 },
X { "fillrects10", 1, fillrects_setup, fillrects_bench, fillrects_cleanup, fillrects_msg, 10 },
X { "fillrects100", 1, fillrects_setup, fillrects_bench, fillrects_cleanup, fillrects_msg, 100 },
X { "fillrects400", 1, fillrects_setup, fillrects_bench, fillrects_cleanup, fillrects_msg, 400 },
X { "fillrects500", 2, fillrects_setup, fillrects_bench, fillrects_cleanup, fillrects_msg, 500 },
X
X { "tiledrects2", 2, tiledrects_setup, tiledrects_bench, tiledrects_cleanup, tiledrects_msg, 2 },
X { "tiledrects10", 1, tiledrects_setup, tiledrects_bench, tiledrects_cleanup, tiledrects_msg, 10 },
X { "tiledrects100", 1, tiledrects_setup, tiledrects_bench, tiledrects_cleanup, tiledrects_msg, 100 },
X { "tiledrects400", 1, tiledrects_setup, tiledrects_bench, tiledrects_cleanup, tiledrects_msg, 400 },
X { "tiledrects500", 2, tiledrects_setup, tiledrects_bench, tiledrects_cleanup, tiledrects_msg, 500 },
X
X { "stippledrects2", 2, stippledrects_setup, stippledrects_bench, stippledrects_cleanup, stippledrects_msg, 2 },
X { "stippledrects10", 1, stippledrects_setup, stippledrects_bench, stippledrects_cleanup, stippledrects_msg, 10 },
X { "stippledrects100", 1, stippledrects_setup, stippledrects_bench, stippledrects_cleanup, stippledrects_msg, 100 },
X { "stippledrects400", 1, stippledrects_setup, stippledrects_bench, stippledrects_cleanup, stippledrects_msg, 400 },
X { "stippledrects500", 2, stippledrects_setup, stippledrects_bench, stippledrects_cleanup, stippledrects_msg, 500 },
X
X { "invrects2", 2, invrects_setup, invrects_bench, invrects_cleanup, invrects_msg, 2 },
X { "invrects10", 1, invrects_setup, invrects_bench, invrects_cleanup, invrects_msg, 10 },
X { "invrects100", 1, invrects_setup, invrects_bench, invrects_cleanup, invrects_msg, 100 },
X { "invrects400", 1, invrects_setup, invrects_bench, invrects_cleanup, invrects_msg, 400 },
X { "invrects500", 2, invrects_setup, invrects_bench, invrects_cleanup, invrects_msg, 500 },
X
X { "arcs2", 2, arcs_setup, arcs_bench, arcs_cleanup, arcs_msg, 2 },
X { "arcs10", 1, arcs_setup, arcs_bench, arcs_cleanup, arcs_msg, 10 },
X { "arcs100", 1, arcs_setup, arcs_bench, arcs_cleanup, arcs_msg, 100 },
X { "arcs400", 1, arcs_setup, arcs_bench, arcs_cleanup, arcs_msg, 400 },
X { "arcs500", 2, arcs_setup, arcs_bench, arcs_cleanup, arcs_msg, 500 },
X
X { "filledarcs2", 2, filledarcs_setup, filledarcs_bench, filledarcs_cleanup, filledarcs_msg, 2 },
X { "filledarcs10", 1, filledarcs_setup, filledarcs_bench, filledarcs_cleanup, filledarcs_msg, 10 },
X { "filledarcs100", 1, filledarcs_setup, filledarcs_bench, filledarcs_cleanup, filledarcs_msg, 100 },
X { "filledarcs400", 1, filledarcs_setup, filledarcs_bench, filledarcs_cleanup, filledarcs_msg, 400 },
X { "filledarcs500", 2, filledarcs_setup, filledarcs_bench, filledarcs_cleanup, filledarcs_msg, 500 },
X
X { "filledpoly10", 2, filledpoly_setup, filledpoly_bench, filledpoly_cleanup, filledpoly_msg, 10 },
X { "filledpoly100", 1, filledpoly_setup, filledpoly_bench, filledpoly_cleanup, filledpoly_msg, 100 },
X
X { "screencopy2", 2, screencopy_setup, screencopy_bench, screencopy_cleanup, screencopy_msg, 2 },
X { "screencopy10", 1, screencopy_setup, screencopy_bench, screencopy_cleanup, screencopy_msg, 10 },
X { "screencopy100", 1, screencopy_setup, screencopy_bench, screencopy_cleanup, screencopy_msg, 100 },
X { "screencopy400", 1, screencopy_setup, screencopy_bench, screencopy_cleanup, screencopy_msg, 400 },
X { "screencopy500", 2, screencopy_setup, screencopy_bench, screencopy_cleanup, screencopy_msg, 500 },
X
X { "scroll", 1, scroll_setup, scroll_bench, scroll_cleanup, scroll_msg, 16 },
X
X { "pixmapcopy2", 3, pixmapcopy_setup, pixmapcopy_bench, pixmapcopy_cleanup, pixmapcopy_msg, 2 },
X { "pixmapcopy10", 2, pixmapcopy_setup, pixmapcopy_bench, pixmapcopy_cleanup, pixmapcopy_msg, 10 },
X { "pixmapcopy100", 2, pixmapcopy_setup, pixmapcopy_bench, pixmapcopy_cleanup, pixmapcopy_msg, 100 },
X { "pixmapcopy400", 2, pixmapcopy_setup, pixmapcopy_bench, pixmapcopy_cleanup, pixmapcopy_msg, 400 },
X { "pixmapcopy500", 3, pixmapcopy_setup, pixmapcopy_bench, pixmapcopy_cleanup, pixmapcopy_msg, 500 },
X
X { "bitmapcopy2", 2, bitmapcopy_setup, bitmapcopy_bench, bitmapcopy_cleanup, bitmapcopy_msg, 2 },
X { "bitmapcopy10", 1, bitmapcopy_setup, bitmapcopy_bench, bitmapcopy_cleanup, bitmapcopy_msg, 10 },
X { "bitmapcopy100", 1, bitmapcopy_setup, bitmapcopy_bench, bitmapcopy_cleanup, bitmapcopy_msg, 100 },
X { "bitmapcopy400", 1, bitmapcopy_setup, bitmapcopy_bench, bitmapcopy_cleanup, bitmapcopy_msg, 400 },
X { "bitmapcopy500", 2, bitmapcopy_setup, bitmapcopy_bench, bitmapcopy_cleanup, bitmapcopy_msg, 500 },
X
X { "imagestring:fixed",1, imagestring_setup, imagestring_bench, imagestring_cleanup, imagestring_msg, (unsigned)"fixed" },
X { "imagestring:6x12", 2, imagestring_setup, imagestring_bench, imagestring_cleanup, imagestring_msg, (unsigned)"6x12" },
X { "imagestring:8x13", 2, imagestring_setup, imagestring_bench, imagestring_cleanup, imagestring_msg, (unsigned)"8x13" },
X { "imagestring:9x15", 2, imagestring_setup, imagestring_bench, imagestring_cleanup, imagestring_msg, (unsigned)"9x15" },
X
X { "complex1", 1, complex1_setup, complex1_bench, complex1_cleanup, complex1_msg, 0 },
X
X { "", 99, NOFUNC, NOFUNC, NOFUNC, NOFUNC, 0 },
X};
END_OF_FILE
if test 12065 -ne `wc -c <'benches.h'`; then
echo shar: \"'benches.h'\" unpacked with wrong size!
fi
# end of 'benches.h'
fi
if test -f 'main.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'main.c'\"
else
echo shar: Extracting \"'main.c'\" \(6794 characters\)
sed "s/^X//" >'main.c' <<'END_OF_FILE'
static char SCCSID[] = "@(#)main.c 1.2 89/02/13";
X/*
X * Copyright 1989 Siemens
X *
X * Permission to use, copy, modify, and distribute this software and its
X * documentation for any purpose and without fee is hereby granted, provided
X * that the above copyright notice appear in all copies and that both that
X * copyright notice and this permission notice appear in supporting
X * documentation, and that the name of Siemens not be used in advertising or
X * publicity pertaining to distribution of the software without specific,
X * written prior permission. Siemens makes no representations about the
X * suitability of this software for any purpose. It is provided "as is"
X * without express or implied warranty.
X *
X * Author: Claus Gittinger, Siemens Munich, unido!sinix!claus at uunet.uu.net
X */
X
X/*
X * xbench
X *
X * measure performance
X *
X * written Feb. '89 by claus
X */
X#include <stdio.h>
X#include <X11/Xlib.h>
X#include <X11/Xutil.h>
X#include "patchlevel.h"
X
Display *dpy;
Window rootWin, win;
int sync;
int screen;
int screenWidth, screenHeight;
int onlyCount, exclCount;
char *onlyList[100];
char *exclList[100];
X/*
X * since the bench is really a graphics benchmark,
X * I do not want to have daemons (rwhod ...) and other stuff
X * like that to disturb me.
X * since I cannot remove them, best I can do is to run the
X * benchmarks more than once and take the BEST time - not the
X * average. This minimizes the influence of sync. rwhod etc...
X *
X * the number of runs is defined below.
X * since every run takes about 10 sec's, this gives 30 secs for every
X * test.
X */
static int nruns = 3;
X
main(argc,argv)
X int argc;
X char **argv;
X{
X Visual visual;
X XSetWindowAttributes xswa;
X int timeGoal = 10;
X char **ap;
X char *cp;
X char *displayName = NULL;
X XSizeHints szhint;
X int list = 0;
X int ask = 0;
X int level = 1;
X int ac;
X
X sync = 0;
X onlyCount = 0;
X exclCount = 0;
X for (ap = &argv[1], ac=argc-1; ac; ac--) {
X cp = *ap++;
X if (strcmp(cp, "-display") == 0) {
X displayName = *ap++; ac--;
X } else if (strcmp(cp, "-level") == 0) {
X cp = *ap++; ac--;
X sscanf(cp, "%d", &level);
X } else if (strcmp(cp, "-nruns") == 0) {
X cp = *ap++; ac--;
X sscanf(cp, "%d", &nruns);
X } else if (strcmp(cp, "-timegoal") == 0) {
X cp = *ap++; ac--;
X sscanf(cp, "%d", &timeGoal);
X } else if (strcmp(cp, "-sync") == 0) {
X sync++;
X } else if (strcmp(cp, "-ask") == 0) {
X ask++;
X } else if (strcmp(cp, "-help") == 0) {
X list++;
X } else if (strcmp(cp, "-only") == 0) {
X onlyList[onlyCount++] = *ap++; ac--;
X level = 99;
X } else if (strcmp(cp, "-not") == 0) {
X exclList[exclCount++] = *ap++; ac--;
X } else
X usage();
X }
X
X onlyList[onlyCount] = NULL;
X exclList[exclCount] = NULL;
X
X if ((level<1) || list) {
X listBenches();
X exit(0);
X }
X
X dpy = XOpenDisplay(displayName);
X if ( dpy == NULL ) {
X fprintf(stderr, "can't open DISPLAY \n");
X exit(1);
X }
X
X screen = DefaultScreen(dpy);
X screenWidth = DisplayWidth(dpy, screen);
X screenHeight = DisplayHeight(dpy, screen);
X rootWin = RootWindow(dpy, screen);
X
X serverinfo(dpy, timeGoal);
X
X /*
X * create a full screen window ..
X */
X visual.visualid = CopyFromParent;
X xswa.backing_store = NotUseful;
X xswa.event_mask = StructureNotifyMask;
X xswa.background_pixel = BlackPixel(dpy, screen);
X xswa.override_redirect = True;
X win = XCreateWindow(dpy, rootWin,
X 0, 0, screenWidth, screenHeight,
X 0,
X DefaultDepth(dpy, screen),
X InputOutput, &visual,
X CWEventMask | CWBackPixel |
X CWOverrideRedirect,
X &xswa);
X
X if (win == (Window)0) {
X fprintf(stderr, "can't create window\n");
X exit(1);
X }
X szhint.flags = PSize | PPosition;
X szhint.x = 0;
X szhint.y = 0;
X szhint.width = screenWidth;
X szhint.height = screenHeight;
X XSetStandardProperties(dpy, win, "xbench", "should not be iconified",
X (Pixmap)0, argv, argc, &szhint);
X
X XSync(dpy, 0);
X
X doBenches(dpy, win, ask, nruns, timeGoal, level, onlyList, exclList);
X
X XCloseDisplay(dpy);
X exit(0);
X}
X
usage() {
X fprintf(stderr, "usage: xbench [options]\n");
X fprintf(stderr, " allowed options:\n");
X fprintf(stderr, " -display name ................. define server\n");
X fprintf(stderr, " -level number (default 1) ...... define number of tests made\n");
X fprintf(stderr, " -timeGoal seconds (default 10) . runtime per test\n");
X fprintf(stderr, " -nruns number (default 3) ...... runs per test\n");
X fprintf(stderr, " -help .......................... print list of available tests\n");
X fprintf(stderr, " -only testname ................. run named test only\n");
X fprintf(stderr, " -not testname .................. do not run named test\n");
X fprintf(stderr, " -ask ........................... interactive mode\n");
X fprintf(stderr, " -sync .......................... sync for slow operations\n");
X exit(1);
X}
X
serverinfo(dpy, timeGoal)
Display *dpy;
X{
X char buffer[128];
X
X printf("==================================================\n");
X printf("GENERAL INFORMATION\n");
X printf("\n");
X fprintf(stderr, "describe brand/configuration of SERVER machine (1 line)\n");
X fprintf(stderr, "(example: XYZ-891 with steam-engine [return]\n");
X gets(buffer);
X printf("server: %s\n", buffer);
X fprintf(stderr, "describe brand/configuration of CLIENT machine (1 line)\n");
X gets(buffer);
X printf("client: %s\n", buffer);
X fprintf(stderr, "describe communication used (1 line)\n");
X fprintf(stderr, "(example: 10Mb ether or 19600 slip ..)\n");
X gets(buffer);
X printf("communication: %s\n", buffer);
X fprintf(stderr, "any additional notes (1 line)\n");
X gets(buffer);
X printf("notes: %s\n", buffer);
X printf("\n");
X printf("==================================================\n");
X printf("SERVER INFORMATION\n");
X printf("\n");
X printf("Servervendor : %s\n",ServerVendor(dpy));
X printf("XSERVER version : %d.%d\n",ProtocolVersion(dpy), VendorRelease(dpy));
X printf("Revision : %d\n",ProtocolRevision(dpy));
X printf("Defaultdepth rootwindow : %d\n",DefaultDepth(dpy,0));
X printf("Server Byte-Order : %s\n",((ImageByteOrder(dpy)
X == MSBFirst) ? "MSBFirst" : "LSBFirst" ));
X printf("Server BitmapBitOrder : %s\n",((BitmapBitOrder(dpy)
X == MSBFirst) ? "MSBFirst" : "LSBFirst" ));
X printf("DisplayWidth : %d\n",DisplayWidth(dpy,0));
X printf("DisplayHeight : %d\n",DisplayHeight(dpy,0));
X printf("\n");
X printf("==================================================\n");
X printf("XBENCH INFORMATION\n");
X printf("VERSION: %d TIMEGOAL = %d sec; NRUNS = %d",
X PATCHLEVEL, timeGoal, nruns);
X if (sync)
X printf("; SYNC");
X printf("\n");
X printf("\n");
X}
END_OF_FILE
if test 6794 -ne `wc -c <'main.c'`; then
echo shar: \"'main.c'\" unpacked with wrong size!
fi
# end of 'main.c'
fi
if test -f 'results/sun3-160.R2.out' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'results/sun3-160.R2.out'\"
else
echo shar: Extracting \"'results/sun3-160.R2.out'\" \(6125 characters\)
sed "s/^X//" >'results/sun3-160.R2.out' <<'END_OF_FILE'
X==================================================
GENERAL INFORMATION
X
server: sun 3/160 (R2)
client: same
communication: unix socket
notes: sunOS 3.4 - plain (untuned) X11R2
X
X==================================================
SERVER INFORMATION
X
Servervendor : MIT X Consortium
XXSERVER version : 11.2
Revision : 0
Defaultdepth rootwindow : 1
Server Byte-Order : MSBFirst
Server BitmapBitOrder : MSBFirst
DisplayWidth : 1152
DisplayHeight : 900
X
X==================================================
XXBENCH INFORMATION
VERSION: 1 TIMEGOAL = 10 sec; NRUNS = 3
X
X========= line10 =========
LINES
X
X42240 vectors of len. 10 in 11 secs
rate = 3840.00 vectors/sec
X========= line100 =========
LINES
X
X20736 vectors of len. 100 in 10 secs
rate = 2073.60 vectors/sec
X========= line400 =========
LINES
X
X8448 vectors of len. 400 in 12 secs
rate = 704.00 vectors/sec
X========= dline10 =========
DASHED LINES
X
X12288 dashed vectors of len. 10 in 11 secs
rate = 1117.09 vectors/sec
X========= dline100 =========
DASHED LINES
X
X3072 dashed vectors of len. 100 in 14 secs
rate = 219.43 vectors/sec
X========= dline400 =========
DASHED LINES
X
X1536 dashed vectors of len. 400 in 28 secs
rate = 54.86 vectors/sec
X========= wline10 =========
WIDE LINES
X
X2304 wide vectors (linewidth=5) of len. 10 in 18 secs
rate = 128.00 vectors/sec
X========= wline100 =========
WIDE LINES
X
X1536 wide vectors (linewidth=5) of len. 100 in 37 secs
rate = 41.51 vectors/sec
X========= wline400 =========
WIDE LINES
X
X1536 wide vectors (linewidth=5) of len. 400 in 121 secs
rate = 12.69 vectors/sec
X========= rects10 =========
RECTANGLES
X
X22784 rectangles with 10 pixel sides in 10 secs
rate = 2278.40 rectangles/sec (91136 Pixels/sec)
X========= rects100 =========
RECTANGLES
X
X11776 rectangles with 100 pixel sides in 11 secs
rate = 1070.55 rectangles/sec (428218 Pixels/sec)
X========= rects400 =========
RECTANGLES
X
X4864 rectangles with 400 pixel sides in 12 secs
rate = 405.33 rectangles/sec (648533 Pixels/sec)
X========= fillrects10 =========
XFILLED RECTANGLES
X
X50176 rectangles with 10 pixel sides in 10 secs
rate = 5017.60 rectangles/sec (501760 Pixels/sec)
X========= fillrects100 =========
XFILLED RECTANGLES
X
X10752 rectangles with 100 pixel sides in 11 secs
rate = 977.45 rectangles/sec (9774545 Pixels/sec)
X========= fillrects400 =========
XFILLED RECTANGLES
X
X2816 rectangles with 400 pixel sides in 17 secs
rate = 165.65 rectangles/sec (26503529 Pixels/sec)
X========= tiledrects10 =========
TILE-FILLED RECTANGLES
X
X33536 rectangles with 10 pixel sides in 10 secs
rate = 3353.60 rectangles/sec (335360 Pixels/sec)
X========= tiledrects100 =========
TILE-FILLED RECTANGLES
X
X4864 rectangles with 100 pixel sides in 12 secs
rate = 405.33 rectangles/sec (4053333 Pixels/sec)
X========= tiledrects400 =========
TILE-FILLED RECTANGLES
X
X1280 rectangles with 400 pixel sides in 26 secs
rate = 49.23 rectangles/sec (7876923 Pixels/sec)
X========= stippledrects10 =========
STIPPLE-FILLED RECTANGLES
X
X8960 rectangles with 10 pixel sides in 11 secs
rate = 814.55 rectangles/sec (81454 Pixels/sec)
X========= stippledrects100 =========
STIPPLE-FILLED RECTANGLES
X
X2304 rectangles with 100 pixel sides in 15 secs
rate = 153.60 rectangles/sec (1536000 Pixels/sec)
X========= stippledrects400 =========
STIPPLE-FILLED RECTANGLES
X
X1280 rectangles with 400 pixel sides in 35 secs
rate = 36.57 rectangles/sec (5851428 Pixels/sec)
X========= invrects10 =========
INVERTED RECTANGLES
X
X35261 rectangles with 10 pixel sides in 10 secs
rate = 3526.10 rectangles/sec (352610 Pixels/sec)
X========= invrects100 =========
INVERTED RECTANGLES
X
X8601 rectangles with 100 pixel sides in 11 secs
rate = 781.91 rectangles/sec (7819090 Pixels/sec)
X========= invrects400 =========
INVERTED RECTANGLES
X
X1721 rectangles with 400 pixel sides in 20 secs
rate = 86.05 rectangles/sec (13768000 Pixels/sec)
X========= arcs10 =========
ARCS
X
X2722 arcs with 10 pixel diameter in 12 secs
rate = 226.83 arcs/sec
X========= arcs100 =========
ARCS
X
X1532 arcs with 100 pixel diameter in 13 secs
rate = 117.85 arcs/sec
X========= arcs400 =========
ARCS
X
X1022 arcs with 400 pixel diameter in 15 secs
rate = 68.13 arcs/sec
X========= filledarcs10 =========
XFILLED ARCS
X
X2042 filled arcs with 10 pixel diameter in 12 secs
rate = 170.17 filled arcs/sec
X========= filledarcs100 =========
XFILLED ARCS
X
X1192 filled arcs with 100 pixel diameter in 14 secs
rate = 85.14 filled arcs/sec
X========= filledarcs400 =========
XFILLED ARCS
X
X682 filled arcs with 400 pixel diameter in 19 secs
rate = 35.89 filled arcs/sec
X========= filledpoly100 =========
XFILLED POLYGONS
X
X1084 filled polygons with 5 points (size 100) in 12 secs
rate = 90.33 filled polygons/sec
X========= screencopy10 =========
COPYAREA (SCREEN->SCREEN)
X
X1464 copies with 10 pixel sides in 13 secs
rate = 112.62 copies/sec (11261 Pixels/sec)
X========= screencopy100 =========
COPYAREA (SCREEN->SCREEN)
X
X1026 copies with 100 pixel sides in 14 secs
rate = 73.29 copies/sec (732857 Pixels/sec)
X========= screencopy400 =========
COPYAREA (SCREEN->SCREEN)
X
X444 copies with 400 pixel sides in 28 secs
rate = 15.86 copies/sec (2537142 Pixels/sec)
X========= scroll =========
SCROLL
X
X585 scrolls (area: 640 x 400) in 16 secs
rate = 25.43 scrolls/sec (6511304 Pixels/sec)
X========= bitmapcopy10 =========
COPYPLANE (BITMAP->SCREEN)
X
X1281 copies with 10 pixel sides in 13 secs
rate = 98.54 copies/sec (9853 Pixels/sec)
X========= bitmapcopy100 =========
COPYPLANE (BITMAP->SCREEN)
X
X769 copies with 100 pixel sides in 15 secs
rate = 51.27 copies/sec (512666 Pixels/sec)
X========= bitmapcopy400 =========
COPYPLANE (BITMAP->SCREEN)
X
X385 copies with 400 pixel sides in 39 secs
rate = 9.87 copies/sec (1579487 Pixels/sec)
X========= imagestring:fixed =========
DRAW IMAGE STRING - font="fixed" (height = 13)
X
X61992 chars in 11 secs
rate = 5635.64 chars/sec
X========= complex1 =========
WINDOW CREATE/DRAW/DESTROY
X
X165 runs 10 secs
rate = 16.50 runs/sec
X==================================================
X
END_OF_FILE
if test 6125 -ne `wc -c <'results/sun3-160.R2.out'`; then
echo shar: \"'results/sun3-160.R2.out'\" unpacked with wrong size!
fi
# end of 'results/sun3-160.R2.out'
fi
if test -f 'results/sun3-50.R3.out' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'results/sun3-50.R3.out'\"
else
echo shar: Extracting \"'results/sun3-50.R3.out'\" \(6750 characters\)
sed "s/^X//" >'results/sun3-50.R3.out' <<'END_OF_FILE'
XFrom sinix!unido!uka!gitting Mon Mar 20 19:45:44 1989
Received: by athen.sp4.siemens.de
X at Mon, 20 Mar 89 19:45:19 +0100 (5.52/SIE-0.1)
Message-Id: <8903201710.AS10131 at unido.irb.informatik.uni-dortmund.de>
Received: from uka.uucp
X by unido.irb.informatik.uni-dortmund.de with uucp via EUnet
X for sinix
X id AS10131; Mon, 20 Mar 89 18:10:37 +0100
Received: from i30s16 by iraun1.ira.uka.de id aa07727; 20 Mar 89 16:28 MET
Date: Mon, 20 Mar 89 16:27:35 MET
XFrom: "Juergen Gittinger" <gitting%uka at unido>
To: claus%uni-dortmund.de at athen
Subject: xbench
Status: R
X
Hallo Claus !
X
Hier die neuen xbench-Werte fuer die Sun3/50.
X
X Tschau
X Juergen
X
X==================================================
GENERAL INFORMATION
X
server: Sun3/50 (R3)
client: Sun3/50
communication: unix-socket
notes:
X
X==================================================
SERVER INFORMATION
X
Servervendor : MIT X Consortium
XXSERVER version : 11.3
Revision : 0
Defaultdepth rootwindow : 1
Server Byte-Order : MSBFirst
Server BitmapBitOrder : MSBFirst
DisplayWidth : 1152
DisplayHeight : 900
X
X==================================================
XXBENCH INFORMATION
VERSION: 1 TIMEGOAL = 10 sec; NRUNS = 3
X
X========= line10 =========
LINES
X
X34560 vectors of len. 10 in 10 secs
rate = 3456.00 vectors/sec
X========= line100 =========
LINES
X
X19200 vectors of len. 100 in 11 secs
rate = 1745.45 vectors/sec
X========= line400 =========
LINES
X
X8448 vectors of len. 400 in 12 secs
rate = 704.00 vectors/sec
X========= dline10 =========
DASHED LINES
X
X9216 dashed vectors of len. 10 in 12 secs
rate = 768.00 vectors/sec
X========= dline100 =========
DASHED LINES
X
X3072 dashed vectors of len. 100 in 18 secs
rate = 170.67 vectors/sec
X========= dline400 =========
DASHED LINES
X
X1536 dashed vectors of len. 400 in 33 secs
rate = 46.55 vectors/sec
X========= wline10 =========
WIDE LINES
X
X2304 wide vectors (linewidth=5) of len. 10 in 29 secs
rate = 79.45 vectors/sec
X========= wline100 =========
WIDE LINES
X
X1536 wide vectors (linewidth=5) of len. 100 in 76 secs
rate = 20.21 vectors/sec
X========= wline400 =========
WIDE LINES
X
X1536 wide vectors (linewidth=5) of len. 400 in 256 secs
rate = 6.00 vectors/sec
X========= rects10 =========
RECTANGLES
X
X18944 rectangles with 10 pixel sides in 11 secs
rate = 1722.18 rectangles/sec (68887 Pixels/sec)
X========= rects100 =========
RECTANGLES
X
X11776 rectangles with 100 pixel sides in 11 secs
rate = 1070.55 rectangles/sec (428218 Pixels/sec)
X========= rects400 =========
RECTANGLES
X
X5888 rectangles with 400 pixel sides in 13 secs
rate = 452.92 rectangles/sec (724676 Pixels/sec)
X========= fillrects10 =========
XFILLED RECTANGLES
X
X39168 rectangles with 10 pixel sides in 10 secs
rate = 3916.80 rectangles/sec (391680 Pixels/sec)
X========= fillrects100 =========
XFILLED RECTANGLES
X
X11264 rectangles with 100 pixel sides in 11 secs
rate = 1024.00 rectangles/sec (10240000 Pixels/sec)
X========= fillrects400 =========
XFILLED RECTANGLES
X
X2816 rectangles with 400 pixel sides in 16 secs
rate = 176.00 rectangles/sec (28160000 Pixels/sec)
X========= tiledrects10 =========
TILE-FILLED RECTANGLES
X
X27392 rectangles with 10 pixel sides in 10 secs
rate = 2739.20 rectangles/sec (273920 Pixels/sec)
X========= tiledrects100 =========
TILE-FILLED RECTANGLES
X
X4608 rectangles with 100 pixel sides in 14 secs
rate = 329.14 rectangles/sec (3291428 Pixels/sec)
X========= tiledrects400 =========
TILE-FILLED RECTANGLES
X
X1280 rectangles with 400 pixel sides in 31 secs
rate = 41.29 rectangles/sec (6606451 Pixels/sec)
X========= stippledrects10 =========
STIPPLE-FILLED RECTANGLES
X
X13056 rectangles with 10 pixel sides in 11 secs
rate = 1186.91 rectangles/sec (118690 Pixels/sec)
X========= stippledrects100 =========
STIPPLE-FILLED RECTANGLES
X
X2304 rectangles with 100 pixel sides in 15 secs
rate = 153.60 rectangles/sec (1536000 Pixels/sec)
X========= stippledrects400 =========
STIPPLE-FILLED RECTANGLES
X
X1280 rectangles with 400 pixel sides in 36 secs
rate = 35.56 rectangles/sec (5688888 Pixels/sec)
X========= invrects10 =========
INVERTED RECTANGLES
X
X30101 rectangles with 10 pixel sides in 10 secs
rate = 3010.10 rectangles/sec (301010 Pixels/sec)
X========= invrects100 =========
INVERTED RECTANGLES
X
X9459 rectangles with 100 pixel sides in 11 secs
rate = 859.91 rectangles/sec (8599090 Pixels/sec)
X========= invrects400 =========
INVERTED RECTANGLES
X
X2151 rectangles with 400 pixel sides in 18 secs
rate = 119.50 rectangles/sec (19120000 Pixels/sec)
X========= arcs10 =========
ARCS
X
X342 arcs with 10 pixel diameter in 71 secs
rate = 4.82 arcs/sec
X========= arcs100 ========= sync
ARCS
X
X14 arcs with 100 pixel diameter in 11 secs
rate = 1.27 arcs/sec
X========= arcs400 ========= sync
ARCS
X
X6 arcs with 400 pixel diameter in 11 secs
rate = 0.55 arcs/sec
X========= filledarcs10 =========
XFILLED ARCS
X
X512 filled arcs with 10 pixel diameter in 33 secs
rate = 15.52 filled arcs/sec
X========= filledarcs100 ========= sync
XFILLED ARCS
X
X60 filled arcs with 100 pixel diameter in 11 secs
rate = 5.45 filled arcs/sec
X========= filledarcs400 ========= sync
XFILLED ARCS
X
X26 filled arcs with 400 pixel diameter in 10 secs
rate = 2.60 filled arcs/sec
X========= filledpoly100 =========
XFILLED POLYGONS
X
X1084 filled polygons with 5 points (size 100) in 12 secs
rate = 90.33 filled polygons/sec
X========= screencopy10 =========
COPYAREA (SCREEN->SCREEN)
X
X1902 copies with 10 pixel sides in 12 secs
rate = 158.50 copies/sec (15850 Pixels/sec)
X========= screencopy100 =========
COPYAREA (SCREEN->SCREEN)
X
X1170 copies with 100 pixel sides in 14 secs
rate = 83.57 copies/sec (835714 Pixels/sec)
X========= screencopy400 =========
COPYAREA (SCREEN->SCREEN)
X
X444 copies with 400 pixel sides in 25 secs
rate = 17.76 copies/sec (2841600 Pixels/sec)
X========= scroll =========
SCROLL
X
X585 scrolls (area: 640 x 400) in 16 secs
rate = 26.59 scrolls/sec (6807272 Pixels/sec)
X========= bitmapcopy10 =========
COPYPLANE (BITMAP->SCREEN)
X
X2561 copies with 10 pixel sides in 11 secs
rate = 232.82 copies/sec (23281 Pixels/sec)
X========= bitmapcopy100 =========
COPYPLANE (BITMAP->SCREEN)
X
X897 copies with 100 pixel sides in 17 secs
rate = 52.76 copies/sec (527647 Pixels/sec)
X========= bitmapcopy400 =========
COPYPLANE (BITMAP->SCREEN)
X
X385 copies with 400 pixel sides in 47 secs
rate = 8.19 copies/sec (1310638 Pixels/sec)
X========= imagestring:fixed =========
DRAW IMAGE STRING - font="fixed" (height = 13)
X
X55104 chars in 11 secs
rate = 5009.45 chars/sec
X========= complex1 =========
WINDOW CREATE/DRAW/DESTROY
X
X153 runs 10 secs
rate = 15.30 runs/sec
X==================================================
X
X
X
END_OF_FILE
if test 6750 -ne `wc -c <'results/sun3-50.R3.out'`; then
echo shar: \"'results/sun3-50.R3.out'\" unpacked with wrong size!
fi
# end of 'results/sun3-50.R3.out'
fi
if test -f 'scripts/detail.awk' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'scripts/detail.awk'\"
else
echo shar: Extracting \"'scripts/detail.awk'\" \(9127 characters\)
sed "s/^X//" >'scripts/detail.awk' <<'END_OF_FILE'
BEGIN {
X nplanes = "?";
X width = "?";
X height = "?";
X vendor = "?";
X vsn = "?";
X server = "?";
X client = "?";
X com = "?";
X s = "?";
X note = "";
X
X value["line10"] = "?";
X value["line100"] = "?";
X value["line400"] = "?";
X value["dline10"] = "?";
X value["dline100"] = "?";
X value["dline400"] = "?";
X value["wline10"] = "?";
X value["wline100"] = "?";
X value["wline400"] = "?";
X value["rects10"] = "?";
X value["rects100"] = "?";
X value["rects400"] = "?";
X value["fillrects10"] = "?";
X value["fillrects100"] = "?";
X value["fillrects400"] = "?";
X value["tiledrects10"] = "?";
X value["tiledrects100"] = "?";
X value["tiledrects400"] = "?";
X value["stippledrects10"] = "?";
X value["stippledrects100"] = "?";
X value["stippledrects400"] = "?";
X value["arcs10"] = "?";
X value["arcs100"] = "?";
X value["arcs400"] = "?";
X value["filledarcs10"] = "?";
X value["filledarcs100"] = "?";
X value["filledarcs400"] = "?";
X value["filledpoly100"] = "?";
X value["invrects10"] = "?";
X value["invrects100"] = "?";
X value["invrects400"] = "?";
X value["screencopy10"] = "?";
X value["screencopy100"] = "?";
X value["screencopy400"] = "?";
X value["scroll"] = "?";
X value["bitmapcopy10"] = "?";
X value["bitmapcopy100"] = "?";
X value["bitmapcopy400"] = "?";
X value["string"] = "?";
X value["complex1"] = "?";
X }
X
X/server:/ {
X server = $2
X if ( $3 != "") {
X server = server " " $3
X }
X if ( $4 != "") {
X server = server " " $4
X }
X if ( $5 != "") {
X server = server " " $5
X }
X if ( $6 != "") {
X server = server " " $6
X }
X if ( $7 != "") {
X server = server " " $7
X }
X if ( $8 != "") {
X server = server " " $8
X }
X if ( $9 != "") {
X server = server " " $9
X }
X }
X
X/client:/ {
X client = $2
X if ( $3 != "") {
X client = client " " $3
X }
X if ( $4 != "") {
X client = client " " $4
X }
X if ( $5 != "") {
X client = client " " $5
X }
X if ( $6 != "") {
X client = client " " $6
X }
X if ( $7 != "") {
X client = client " " $7
X }
X if ( $8 != "") {
X client = client " " $8
X }
X if ( $9 != "") {
X client = client " " $9
X }
X }
X
X/communication:/{
X com = $2
X if ( $3 != "") {
X com = com " " $3
X }
X if ( $4 != "") {
X com = com " " $4
X }
X if ( $5 != "") {
X com = com " " $5
X }
X if ( $6 != "") {
X com = com " " $6
X }
X if ( $7 != "") {
X com = com " " $7
X }
X if ( $8 != "") {
X com = com " " $8
X }
X if ( $9 != "") {
X com = com " " $9
X }
X }
X
X/notes:/ {
X note = $2
X if ( $3 != "") {
X note = note " " $3
X }
X if ( $4 != "") {
X note = note " " $4
X }
X if ( $5 != "") {
X note = note " " $5
X }
X if ( $6 != "") {
X note = note " " $6
X }
X if ( $7 != "") {
X note = note " " $7
X }
X if ( $8 != "") {
X note = note " " $8
X }
X if ( $9 != "") {
X note = note " " $9
X }
X }
X
X/Servervendor / {
X vendor = $3;
X if ( $4 != "") {
X vendor = vendor " " $4
X }
X if ( $5 != "") {
X vendor = vendor " " $5
X }
X if ( $6 != "") {
X vendor = vendor " " $6
X }
X if ( $7 != "") {
X vendor = vendor " " $7
X }
X if ( $8 != "") {
X vendor = vendor " " $8
X }
X if ( $9 != "") {
X vendor = vendor " " $9
X }
X }
X/version / {
X vsn = $4;
X if ( $5 != "") {
X vsn = vsn " " $5
X }
X if ( $6 != "") {
X vsn = vsn " " $6
X }
X if ( $7 != "") {
X vsn = vsn " " $7
X }
X }
X/Defaultdepth / { nplanes = $4 }
X/DisplayWidth / { width = $3 }
X/DisplayHeight / { height = $3 }
X
X/ line10 / { x = "line10"; }
X/ line100 / { x = "line100"; }
X/ line400 / { x = "line400"; }
X/ dline10 / { x = "dline10"; }
X/ dline100 / { x = "dline100"; }
X/ dline400 / { x = "dline400"; }
X/ wline10 / { x = "wline10"; }
X/ wline100 / { x = "wline100"; }
X/ wline400 / { x = "wline400"; }
X/ rects10 / { x = "rects10"; }
X/ rects100 / { x = "rects100"; }
X/ rects400 / { x = "rects400"; }
X/ fillrects10 / { x = "fillrects10"; }
X/ fillrects100 / { x = "fillrects100"; }
X/ fillrects400 / { x = "fillrects400"; }
X/ tiledrects10 / { x = "tiledrects10"; }
X/ tiledrects100 / { x = "tiledrects100"; }
X/ tiledrects400 / { x = "tiledrects400"; }
X/ stippledrects10 / { x = "stippledrects10"; }
X/ stippledrects100 / { x = "stippledrects100"; }
X/ stippledrects400 / { x = "stippledrects400"; }
X/ arcs10 / { x = "arcs10"; }
X/ arcs100 / { x = "arcs100"; }
X/ arcs400 / { x = "arcs400"; }
X/ filledarcs10 / { x = "filledarcs10"; }
X/ filledarcs100 / { x = "filledarcs100"; }
X/ filledarcs400 / { x = "filledarcs400"; }
X/ filledpoly100 / { x = "filledpoly100"; }
X/ invrects10 / { x = "invrects10"; }
X/ invrects100 / { x = "invrects100"; }
X/ invrects400 / { x = "invrects400"; }
X/ screencopy10 / { x = "screencopy10"; }
X/ screencopy100 / { x = "screencopy100"; }
X/ screencopy400 / { x = "screencopy400"; }
X/ scroll / { x = "scroll"; }
X/ bitmapcopy10 / { x = "bitmapcopy10"; }
X/ bitmapcopy100 / { x = "bitmapcopy100"; }
X/ bitmapcopy400 / { x = "bitmapcopy400"; }
X/ imagestring/ { x = "string"; }
X/ complex1 / { x = "complex1"; }
X
X/rate =/ {
X value[x] = $3;
X x = "dummy"; w = 1
X }
X
X/NOT RUN/ {
X x = "dummy"; w = 1
X }
X
XEND {
X print ".bp"
X print ".NH"
X print server
X print ".LP"
X print ".nf"
X print "Vendor: " vendor ;
X print "Release: " vsn ;
X print "Display: " width " x " height " x " nplanes ;
X print " " ;
X print "Notes : " note ;
X print " " ;
X print "Connection for test: " com ;
X print "Machine on the other side: " client;
X print " " ;
X print ".fi" ;
X print ".sp" ;
X print ".TS" ;
X print ".box, tab(!);" ;
X print "l | c | c | c | c | r"
X print "l | r | r | r | r | r."
X print "test!10!100!400!!"
X print "="
X print "lines!" value["line10"] "!" value["line100"] "!" value["line400"] "!!lines/sec"
X print "_"
X print "dashed lines!" value["dline10"] "!" value["dline100"] "!" value["dline400"] "!!lines/sec"
X print "_"
X print "wide lines!" value["wline10"] "!" value["wline100"] "!" value["wline400"] "!!lines/sec"
X print "_"
X print "rectangles !" value["rects10"] "!" value["rects100"] "!" value["rects400"] "!!rectangles/sec"
X print "="
X print "filled rectangles !" value["fillrects10"] "!" value["fillrects100"] "!" value["fillrects400"] "!!rectangles/sec"
X print "_"
X print "tiled rectangles !" value["tiledrects10"] "!" value["tiledrects100"] "!" value["tiledrects400"] "!!rectangles/sec"
X print "_"
X print "stippled rectangles !" value["stippledrects10"] "!" value["stippledrects100"] "!" value["stippledrects400"] "!!rectangles/sec"
X print "="
X print "arcs!" value["arcs10"] "!" value["arcs100"] "!" value["arcs400"] "!!arcs/sec"
X print "_"
X print "filled arcs!" value["filledarcs10"] "!" value["filledarcs100"] "!" value["filledarcs400"] "!!arcs/sec"
X print "="
X print "filled polygon!" " " "!" value["filledpoly100"] "!" " " "!!fills/sec"
X print "="
X print "screen copy!" value["screencopy10"] "!" value["screencopy100"] "!" value["screencopy400"] "!!copies/sec"
X print "_"
X print "scrolls!" " ! ! !" value["scroll"] "!scrolls/sec"
X print "_"
X print "bitmap copy!" value["bitmapcopy10"] "!" value["bitmapcopy100"] "!" value["bitmapcopy400"] "!!copies/sec"
X print "_"
X print "invert rectangles !" value["invrects10"] "!" value["invrects100"] "!" value["invrects400"] "!!rectangles/sec"
X print "="
X print "text !" " ! ! !" value["string"] "!chars/sec"
X print "="
X print "complex!" " ! ! !" value["complex1"] "!runs/sec"
X print "="
X print ".TE"
X print ".LP"
X }
END_OF_FILE
if test 9127 -ne `wc -c <'scripts/detail.awk'`; then
echo shar: \"'scripts/detail.awk'\" unpacked with wrong size!
fi
# end of 'scripts/detail.awk'
fi
if test -f 'scripts/xstones.awk' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'scripts/xstones.awk'\"
else
echo shar: Extracting \"'scripts/xstones.awk'\" \(9498 characters\)
sed "s/^X//" >'scripts/xstones.awk' <<'END_OF_FILE'
BEGIN {
X countedWeight["all"] = 0;
X missedWeight["all"] = 0;
X runtime["all"] = 0;
X
X countedWeight["line"] = 0;
X missedWeight["line"] = 0;
X runtime["line"] = 0;
X
X countedWeight["fill"] = 0;
X missedWeight["fill"] = 0;
X runtime["fill"] = 0;
X
X countedWeight["blit"] = 0;
X missedWeight["blit"] = 0;
X runtime["blit"] = 0;
X
X countedWeight["arc"] = 0;
X missedWeight["arc"] = 0;
X runtime["arc"] = 0;
X
X countedWeight["text"] = 0;
X missedWeight["text"] = 0;
X runtime["text"] = 0;
X
X countedWeight["complex"] = 0;
X missedWeight["complex"] = 0;
X runtime["complex"] = 0;
X
X sunValue["line10"] = 3456.00;
X sunValue["line100"] = 1745.45;
X sunValue["line400"] = 704.00;
X
X sunValue["dline10"] = 768.00;
X sunValue["dline100"] = 170.67;
X sunValue["dline400"] = 46.55;
X
X sunValue["wline10"] = 79.45;
X sunValue["wline100"] = 20.21;
X sunValue["wline400"] = 6.00;
X
X sunValue["rects10"] = 1722.18;
X sunValue["rects100"] = 1070.55;
X sunValue["rects400"] = 452.92;
X
X sunValue["fillrects10"] = 3916.80;
X sunValue["fillrects100"] = 1024.00;
X sunValue["fillrects400"] = 176.00;
X
X sunValue["tiledrects10"] = 2739.20;
X sunValue["tiledrects100"] = 329.14;
X sunValue["tiledrects400"] = 41.29;
X
X sunValue["stippledrects10"] = 1186.91;
X sunValue["stippledrects100"] = 153.60;
X sunValue["stippledrects400"] = 35.56;
X
X sunValue["invrects10"] = 3010.10;
X sunValue["invrects100"] = 859.91;
X sunValue["invrects400"] = 119.50;
X
X sunValue["arcs10"] = 4.82;
X sunValue["arcs100"] = 1.27;
X sunValue["arcs400"] = 0.55;
X
X sunValue["filledarcs10"] = 15.52;
X sunValue["filledarcs100"] = 5.45;
X sunValue["filledarcs400"] = 2.60;
X
X sunValue["filledpoly100"] = 90.33;
X
X sunValue["screencopy10"] = 158.50;
X sunValue["screencopy100"] = 83.57;
X sunValue["screencopy400"] = 17.76;
X
X sunValue["scroll"] = 26.59;
X
X sunValue["bitmapcopy10"] = 232.82;
X sunValue["bitmapcopy100"] = 52.76;
X sunValue["bitmapcopy400"] = 8.19;
X
X sunValue["string"] = 5009.45;
X
X sunValue["complex1"] = 15.30;
X }
X
X/ line10 / { x = "line10"; w = 300; g = "line"; }
X/ line100 / { x = "line100"; w = 400; g = "line"; }
X/ line400 / { x = "line400"; w = 300; g = "line"; }
X/ dline10 / { x = "dline10"; w = 50; g = "line"; }
X/ dline100 / { x = "dline100"; w = 150; g = "line"; }
X/ dline400 / { x = "dline400"; w = 100; g = "line"; }
X/ wline10 / { x = "wline10"; w = 50; g = "line"; }
X/ wline100 / { x = "wline100"; w = 100; g = "line"; }
X/ wline400 / { x = "wline400"; w = 50; g = "line"; }
X/ rects10 / { x = "rects10"; w = 150; g = "line"; }
X/ rects100 / { x = "rects100"; w = 250; g = "line"; }
X/ rects400 / { x = "rects400"; w = 150; g = "line"; }
X/ fillrects10 / { x = "fillrects10"; w = 350; g = "fill"; }
X/ fillrects100 / { x = "fillrects100"; w = 450; g = "fill"; }
X/ fillrects400 / { x = "fillrects400"; w = 350; g = "fill"; }
X/ tiledrects10 / { x = "tiledrects10"; w = 150; g = "fill"; }
X/ tiledrects100 / { x = "tiledrects100"; w = 250; g = "fill"; }
X/ tiledrects400 / { x = "tiledrects400"; w = 150; g = "fill"; }
X/ stippledrects10 / { x = "stippledrects10"; w = 50; g = "fill"; }
X/ stippledrects100 / { x = "stippledrects100"; w = 100; g = "fill"; }
X/ stippledrects400 / { x = "stippledrects400"; w = 50; g = "fill"; }
X/ arcs10 / { x = "arcs10"; w = 50; g = "arc"; }
X/ arcs100 / { x = "arcs100"; w = 100; g = "arc"; }
X/ arcs400 / { x = "arcs400"; w = 50; g = "arc"; }
X/ filledarcs10 / { x = "filledarcs10"; w = 50; g = "arc"; }
X/ filledarcs100 / { x = "filledarcs100"; w = 100; g = "arc"; }
X/ filledarcs400 / { x = "filledarcs400"; w = 50; g = "arc"; }
X/ filledpoly100 / { x = "filledpoly100"; w = 200; g = "dummy"; }
X/ invrects10 / { x = "invrects10"; w = 100; g = "blit"; }
X/ invrects100 / { x = "invrects100"; w = 150; g = "blit"; }
X/ invrects400 / { x = "invrects400"; w = 100; g = "blit"; }
X/ screencopy10 / { x = "screencopy10"; w = 50; g = "blit"; }
X/ screencopy100 / { x = "screencopy100"; w = 150; g = "blit"; }
X/ screencopy400 / { x = "screencopy400"; w = 100; g = "blit"; }
X/ scroll / { x = "scroll"; w =1000; g = "blit"; }
X/ bitmapcopy10 / { x = "bitmapcopy10"; w = 50; g = "blit"; }
X/ bitmapcopy100 / { x = "bitmapcopy100"; w = 100; g = "blit"; }
X/ bitmapcopy400 / { x = "bitmapcopy400"; w = 50; g = "blit"; }
X/ imagestring/ { x = "string"; w =3000; g = "text"; }
X/ complex1 / { x = "complex1"; w = 800; g = "complex"; }
X
X/rate =/ {
X if ( x != "dummy" ) {
X ratio = $3 / sunValue[x];
X runtime["all"] = runtime["all"] + w/ratio;
X countedWeight["all"] = countedWeight["all"] + w;
X
X runtime[g] = runtime[g] + w/ratio;
X countedWeight[g] = countedWeight[g] + w;
X x = "dummy"; w = 1
X }
X }
X
X/NOT RUN/ {
X if (x != "dummy") {
X missedWeight["all"] = missedWeight["all"] + w;
X missedWeight[g] = missedWeight[g] + w;
X x = "dummy"; w = 1
X }
X }
X
XEND {
X cw = countedWeight["line"];
X mw = missedWeight["line"];
X rt = runtime["line"];
X allWeight = 10000;
X
X if (cw == 0) {
X print "TOTAL ? lineStones"
X } else {
X rt = (rt*allWeight)/cw;
X if (mw > 0) {
X text = "expected ";
X } else {
X text = "";
X }
X
X ratio = allWeight/rt;
X stones = int(allWeight * ratio);
X t = sprintf("TOTAL %s %8.0f lineStones",text,stones);
X print t;
X }
X
X cw = countedWeight["fill"];
X mw = missedWeight["fill"];
X rt = runtime["fill"];
X
X if (cw == 0) {
X print "TOTAL ? fillStones"
X } else {
X rt = (rt*allWeight)/cw;
X if (mw > 0) {
X text = "expected ";
X } else {
X text = "";
X }
X
X ratio = allWeight/rt;
X stones = int(allWeight * ratio);
X t = sprintf("TOTAL %s %8.0f fillStones",text,stones);
X print t;
X }
X
X cw = countedWeight["blit"];
X mw = missedWeight["blit"];
X rt = runtime["blit"];
X
X if (cw == 0) {
X print "TOTAL ? blitStones"
X } else {
X rt = (rt*allWeight)/cw;
X if (mw > 0) {
X text = "expected ";
X } else {
X text = "";
X }
X
X ratio = allWeight/rt;
X stones = int(allWeight * ratio);
X t = sprintf("TOTAL %s %8.0f blitStones",text,stones);
X print t;
X }
X
X cw = countedWeight["arc"];
X mw = missedWeight["arc"];
X rt = runtime["arc"];
X
X if (cw == 0) {
X print "TOTAL ? arcStones"
X } else {
X rt = (rt*allWeight)/cw;
X if (mw > 0) {
X text = "expected ";
X } else {
X text = "";
X }
X
X ratio = allWeight/rt;
X stones = int(allWeight * ratio);
X t = sprintf("TOTAL %s %8.0f arcStones",text,stones);
X print t;
X }
X
X cw = countedWeight["text"];
X mw = missedWeight["text"];
X rt = runtime["text"];
X
X if (cw == 0) {
X print "TOTAL ? textStones"
X } else {
X rt = (rt*allWeight)/cw;
X if (mw > 0) {
X text = "expected ";
X } else {
X text = "";
X }
X
X ratio = allWeight/rt;
X stones = int(allWeight * ratio);
X t = sprintf("TOTAL %s %8.0f textStones",text,stones);
X print t;
X }
X
X cw = countedWeight["complex"];
X mw = missedWeight["complex"];
X rt = runtime["complex"];
X
X if (cw == 0) {
X print "TOTAL ? complexStones"
X } else {
X rt = (rt*allWeight)/cw;
X if (mw > 0) {
X text = "expected ";
X } else {
X text = "";
X }
X
X ratio = allWeight/rt;
X stones = int(allWeight * ratio);
X t = sprintf("TOTAL %s %8.0f complexStones",text,stones);
X print t;
X }
X
X cw = countedWeight["all"];
X mw = missedWeight["all"];
X rt = runtime["all"];
X
X if (cw == 0) {
X print "TOTAL ? xStones"
X } else {
X rt = (rt*allWeight)/cw;
X if (mw > 0) {
X text = "expected ";
X } else {
X text = "";
X }
X
X ratio = allWeight/rt;
X stones = int(allWeight * ratio);
X t = sprintf("TOTAL %s %8.0f xStones",text,stones);
X print t;
X }
X }
END_OF_FILE
if test 9498 -ne `wc -c <'scripts/xstones.awk'`; then
echo shar: \"'scripts/xstones.awk'\" unpacked with wrong size!
fi
# end of 'scripts/xstones.awk'
fi
echo shar: End of archive 3 \(of 4\).
cp /dev/null ark3isdone
MISSING=""
for I in 1 2 3 4 ; do
if test ! -f ark${I}isdone ; then
MISSING="${MISSING} ${I}"
fi
done
if test "${MISSING}" = "" ; then
echo You have unpacked all 4 archives.
rm -f ark[1-9]isdone
else
echo You still need to unpack the following archives:
echo " " ${MISSING}
fi
## End of shell archive.
exit 0
More information about the Comp.sources.x
mailing list