#CONTENTS
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
1 Scope
#1_1
1.1 Identification
#1_2
1.2 System Overview
#1_3
1.3 Document Overview
#2
2 References
#2_1
2.1 CUPS Documentation
#2_2
2.2 Other Documents
#3
3 Programs
#4
4 Scheduler Objects
#5
A Glossary
#5_1
A.1 Terms
#5_2
A.2 Acronyms
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
http://www.easysw.com
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/
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:
1 - Scope
2 - References
3 - Programs
4 - Scheduler Objects
A - Glossary
2 References
2.1 CUPS Documentation
The following CUPS documentation is referenced by this document:
CUPS-CMP-1.1: CUPS Configuration Management Plan
CUPS-IDD-1.1: CUPS System Interface Design Description
CUPS-IPP-1.1: CUPS Implementation of IPP
CUPS-SAM-1.1.x: CUPS Software Administrators Manual
CUPS-SDD-1.1: CUPS Software Design Description
CUPS-SPM-1.1.x: CUPS Software Programming Manual
CUPS-SSR-1.1: CUPS Software Security Report
CUPS-STP-1.1: CUPS Software Test Plan
CUPS-SUM-1.1.x: CUPS Software Users Manual
CUPS-SVD-1.1: CUPS Software Version Description
2.2 Other Documents
The following non-CUPS documents are referenced by this document:
http://partners.adobe.com/asn/developer/PDFS/TN/5003.PPD_Spec_v4.3.pdf
Adobe PostScript Printer Description File Format Specification, Version
4.3.
http://partners.adobe.com/asn/developer/PDFS/TN/PLRM.pdf
Adobe PostScript Language Reference, Third Edition.
IPP/1.1: Implementers Guide
http://www.ietf.org/rfc/rfc1179.txt
RFC 1179, Line Printer
Daemon Protocol
http://www.ietf.org/rfc/rfc2396.txt
RFC 2396, Uniform
Resource Identifiers (URI): Generic Syntax
http://www.ietf.org/rfc/rfc2567.txt
RFC 2567, Design Goals
for an Internet Printing Protocol
http://www.ietf.org/rfc/rfc2568.txt
RFC 2568, Rationale
for the Structure of the Model and Protocol for the Internet Printing
Protocol
http://www.ietf.org/rfc/rfc2569.txt
RFC 2569, Mapping
between LPD and IPP Protocols
http://www.ietf.org/rfc/rfc2616.txt
RFC 2616, Hypertext
Transfer Protocol -- HTTP/1.1
http://www.ietf.org/rfc/rfc2617.txt
RFC 2617, HTTP
Authentication: Basic and Digest Access
Authentication
http://www.ietf.org/rfc/rfc2910.txt
RFC 2910, IPP/1.1:
Encoding and Transport
http://www.ietf.org/rfc/rfc2911.txt
RFC 2911, IPP/1.1:
Model and Semantics
http://www.ietf.org/rfc/rfc3380.txt
RFC 3380, IPP: Job and
Printer Set Operations
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
Program
Base Memory
Max Memory
Temp
Files
CPU Usage
ipp
91k
256k
Up to size of print file
Low
lpd
89k
89k
Up to size of print file
Low
parallel
85k
85k
Up to size of print
file
Low
serial
85k
85k
Up to size of print file
Low
socket
85k
85k
Up to size of print file
Low
usb
85k
85k
Up to size of print file
Low
CGIs
Program
Base Memory
Max Memory
Temp
Files
CPU Usage
admin.cgi
107k
256k
Up to size of PPD
file
Medium
classes.cgi
95k
Size of class objects
None
Medium
jobs.cgi
93k
Size of job objects
None
Medium
printers.cgi
95k
Size of printer objects
None
Medium
Command-Line Programs
Program
Base Memory
Max Memory
Temp
Files
CPU Usage
accept
88k
128k
None
Low
cancel
88k
128k
None
Low
disable
88k
128k
None
Low
enable
88k
128k
None
Low
lp
90k
256k
None
Low
lpadmin
148k
256k
None
Low
lpc
86k
Size of job and printer objects
None
Medium
lpinfo
89k
Size of device and PPD objects
None
Medium
lpmove
88k
128k
None
Low
lpoptions
89k
128k
None
Low
lppasswd
90k
90k
None
Low
lpq
87k
Size of job objects
None
Medium
lpr
87k
256k
None
Low
lprm
84k
128k
None
Low
lpstat
119k
Size of job, printer, and class
objects
None
Medium
reject
88k
128k
None
Low
Daemons
Program
Base Memory
Max Memory
Temp
Files
CPU Usage
cups-lpd
92k
256k
One file per control
or data file from client
Low
cupsd
308k
See Scheduler Requirements
See Scheduler Requirements
Medium
cups-polld
84k
Size of printer and class objects
None
Low
Filters
Program
Base Memory
Max Memory
Temp
Files
CPU Usage
hpgltops
263k
320k
None
Medium
imagetops
628k
10M
Swap file for
uncompressed image data
Medium
imagetoraster
652k
10M
Swap file for
uncompressed image data
High
pstops
775k
840k
Up to size of print
file
Medium
pstoraster
4M
14M
Swap file for command
lists
High
rastertoepson
693k
1M
None
Low
rastertohp
690k
1M
None
Low
texttops
638k
4*cols*rows
None
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.
Object
Memory Per
Disk Per
Browse ACL
1k
120
Browse Poll
24
80
Browse Relay
28
80
Certificate
76
32
Class
9k
200
Client
13k
-
Device
256
-
Job
2k
1k + size of document files
Location ACL
1k
120
MIME Filter
268
80
MIME Type
340
80
PPD
200
656
Printer
11k
32k
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
