CUPS Software Performance Specification

CUPS Software Performance Specification


CUPS-SPS-1.1
Easy Software Products
Copyright 1997-2005, All Rights Reserved

Table of Contents



1 Scope 2 References 3 Programs

4 Scheduler Objects

A Glossary

1 Scope

1.1 Identification

This software performance specification provides an analysis of the memory, disk, and processor utilitization of each program in the Common UNIX Printing System ("CUPS") Version 1.1.

For the purposes of comparison, all figures are for the Linux Intel platform. Memory utilization on other platforms should be similar.

1.2 System Overview

CUPS provides a portable printing layer for UNIX®-based operating systems. It has been developed by Easy Software Products to promote a standard printing solution for all UNIX vendors and users. CUPS provides the System V and Berkeley command-line interfaces.

CUPS uses the Internet Printing Protocol ("IPP") as the basis for managing print jobs and queues. The Line Printer Daemon ("LPD") Server Message Block ("SMB"), and AppSocket (a.k.a. JetDirect) protocols are also supported with reduced functionality. CUPS adds network printer browsing and PostScript Printer Description ("PPD") based printing options to support real-world printing under UNIX.

CUPS includes an image file RIP that supports printing of image files to non-PostScript printers. A customized version of GNU Ghostscript 7.05 for CUPS called ESP Ghostscript is available separately to support printing of PostScript files within the CUPS driver framework. Sample drivers for Dymo, EPSON, HP, and OKIDATA printers are included that use these filters.

Drivers for thousands of printers are provided with our ESP Print Pro software, available at:

    http://www.easysw.com/printpro/

CUPS is licensed under the GNU General Public License and GNU Library General Public License. Please contact Easy Software Products for commercial support and "binary distribution" rights.

1.3 Document Overview

This software performance specification is organized into the following sections:

2 References

2.1 CUPS Documentation

The following CUPS documentation is referenced by this document:

2.2 Other Documents

The following non-CUPS documents are referenced by this document:

3 Programs

The following table describes the average memory, disk, and CPU usage of each program in CUPS.

The base memory column shows the initial memory requirements for each program, including any shared libraries that are provided by CUPS.

The max memory column shows the maximum amount of memory that will be used by the program based upon the default configuration settings supplied with CUPS.

The temp files column indicates whether any temporary files are created.

The CPU usage column specifies a relative CPU usage by the program under normal conditions, either low, medium, or high. Low usage indicates that the program will never use more than 33% of the available CPU time. Medium usage indicates the program will use as much as 66% of the available CPU time. High usage indicates the program uses 66% or more of the available CPU time.

Backends
ProgramBase MemoryMax MemoryTemp FilesCPU Usage
ipp91k256kUp to size of print file Low
lpd89k89kUp to size of print file Low
parallel85k85kUp to size of print fileLow
serial85k85kUp to size of print file Low
socket85k85kUp to size of print file Low
usb85k85kUp to size of print file Low
CGIs
ProgramBase MemoryMax MemoryTemp FilesCPU Usage
admin.cgi107k256kUp to size of PPD fileMedium
classes.cgi95kSize of class objects NoneMedium
jobs.cgi93kSize of job objectsNone Medium
printers.cgi95kSize of printer objects NoneMedium
Command-Line Programs
ProgramBase MemoryMax MemoryTemp FilesCPU Usage
accept88k128kNoneLow
cancel88k128kNoneLow
disable88k128kNoneLow
enable88k128kNoneLow
lp90k256kNoneLow
lpadmin148k256kNoneLow
lpc86kSize of job and printer objects NoneMedium
lpinfo89kSize of device and PPD objects NoneMedium
lpmove88k128kNoneLow
lpoptions89k128kNoneLow
lppasswd90k90kNoneLow
lpq87kSize of job objectsNone Medium
lpr87k256kNoneLow
lprm84k128kNoneLow
lpstat119kSize of job, printer, and class objectsNoneMedium
reject88k128kNoneLow
Daemons
ProgramBase MemoryMax MemoryTemp FilesCPU Usage
cups-lpd92k256kOne file per control or data file from clientLow
cupsd308kSee Scheduler Requirements See Scheduler RequirementsMedium
cups-polld84kSize of printer and class objects NoneLow
Filters
ProgramBase MemoryMax MemoryTemp FilesCPU Usage
hpgltops263k320kNoneMedium
imagetops628k10MSwap file for uncompressed image dataMedium
imagetoraster652k10MSwap file for uncompressed image dataHigh
pstops775k840kUp to size of print fileMedium
pstoraster4M14MSwap file for command listsHigh
rastertoepson693k1MNoneLow
rastertohp690k1MNoneLow
texttops638k4*cols*rowsNone Low

4 Scheduler Objects

The cupsd program is the CUPS scheduler process. It manages many interdependent server objects that are used to manage and print files to printers.

The following table provides the memory and disk cost associated with each server object.

ObjectMemory PerDisk Per
Browse ACL1k120
Browse Poll2480
Browse Relay2880
Certificate7632
Class9k200
Client13k-
Device256-
Job2k1k + size of document files
Location ACL1k120
MIME Filter26880
MIME Type34080
PPD200656
Printer11k32k

A Glossary

A.1 Terms

C
A computer language.
parallel
Sending or receiving data more than 1 bit at a time.
pipe
A one-way communications channel between two programs.
serial
Sending or receiving data 1 bit at a time.
socket
A two-way network communications channel.

A.2 Acronyms

ASCII
American Standard Code for Information Interchange
CUPS
Common UNIX Printing System
ESC/P
EPSON Standard Code for Printers
FTP
File Transfer Protocol
HP-GL
Hewlett-Packard Graphics Language
HP-PCL
Hewlett-Packard Page Control Language
HP-PJL
Hewlett-Packard Printer Job Language
IETF
Internet Engineering Task Force
IPP
Internet Printing Protocol
ISO
International Standards Organization
LPD
Line Printer Daemon
MIME
Multimedia Internet Mail Exchange
PPD
PostScript Printer Description
SMB
Server Message Block
TFTP
Trivial File Transfer Protocol