[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

gnome-terminal benchmark



In an effort to create a set of benchmarks for gauging desktop performance I have written up a procedure for gnome-terminal to test the speed that text is sent to the terminal window and written a script to perform the test. I have attached the writeup for the procedure (bench_terminal.txt) and the script to run the test (cattest) to this email.

I am interested in hearing people's comments on this test. I know this is only one test and doesn't address desktop issues like program startup time, but we have to start somewhere.

We can start to assemble the benchmarks and put them in

http://fedora.redhat.com/projects/additional-projects/benchmarks/

-Will
Benchmark text output performance of gnome-terminal

Frequently output is sent to a terminal window. In Gnome the program
gnome-terminal handles the display of text on a terminal window. The,
one simple benchmark is to determine the amount of time required to
output a large text file to a gnome-terminal window.

gnome-terminal is a little tricky to benchmark because has a
server. When you start gnome-terminal it connects to the server rather
than starting a new child process. Thus, timing the gnome-terminal
command will count the time required to communicate information to the
gnome-terminal server rather than the time required to actually
perform the task. To work around this problem a script is executed
within the new gnome-terminal window and the information is saved to a
file.


Procedure:

0) Get system configuration information hardware and software:
   CPU: cat /proc/cpuinfo
   Memory: cat /proc/meminfo
   Kernel: uname -a
   gnome-terminal: rpm -qa gnome-terminal
   xserver:   rpm -qa xorg-x11

1) Get the test file, the jargon file from Project Gutenberg:

   http://www.gutenberg.net/etext02/jarg422.txt.

2) Verify that the file is the same with md5sum
   $ md5sum jarg422.txt
   ef9b53f52312ee266c98c8e206d9e823  jarg422.txt

3) Place the cattest script in the same directory as jarg422.txt and
   make it executable.

4) Run the test on the console of the machine with the command
   below. The script will generate a file "cattime in the directory
   with the amount of time required to cat the file to the terminal
   window.

   gnome-terminal -e "./cattest"

4a) If the system is set up to run oprofile and you have root access,
    you can run the same script as root with command below to get some
    additional profiling information in the cattime file:

    gnome-terminal -e "./cattest --profile"

    Additional analysis on the oprofile data can be performed after
    the benchmark completes.
#! /bin/bash
#
# Simple test to gather data on where gnome-terminal spends
# time This is compilicated by the terminal server model of
# gnome-terminal.  Time taken for benchmark written to cattime.
#
# When optional --profile on commandline, oprofile used to get an
# overall view of what is happening on the system. PROFILING is only
# going to work with kernel that have oprofile support (Red Hat SMP
# kernels).
#
# Will Cohen
# 5/27/2004
#

BENCHMARK="cattest"
VERSION=0.0

OPCONTROL=/usr/bin/opcontrol
OPREPORT=/usr/bin/opreport
RM=/bin/rm
RESULTS_FILE=cattime

if test "$1" = "--profile"; then
    PROFILING=yes
else
    PROFILING=no
fi

# Setup default oprofile.
if test "$PROFILING" = "yes"; then
    $OPCONTROL --deinit
    $OPCONTROL --reset
    # FIXME Command below may use previous event settings for oprofile.
    $OPCONTROL --setup --no-vmlinux --separate=library
    $OPCONTROL --start
fi

# Run the actual experiment
$RM -rf $RESULTS_FILE
echo "Benchmark: " $BENCHMARK " Version: " $VERSION >> $RESULTS_FILE
date >> $RESULTS_FILE

# The actual benchmark being timed is below.
/usr/bin/time /bin/cat `pwd`/jarg422.txt 2>> $RESULTS_FILE

# Shutdown oprofile.
if test "$PROFILING" = "yes"; then
    $OPCONTROL --dump
    $OPCONTROL --shutdown
    # If PROFILING, need to do analysis with oprerport after running the test.
    # May need more details than what is provided by command below.
    $OPREPORT --threshold 2 --long-filenames >> $RESULTS_FILE
fi

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]