#CONTENTSCUPS Software Performance SpecificationCUPS Software Performance Specification
CUPS-SPS-1.1
Easy Software Products
Copyright 1997-2005, All Rights Reserved
Table of Contents 
#11 Scope #1_11.1 Identification #1_21.2 System Overview #1_31.3 Document Overview #22 References #2_12.1 CUPS Documentation #2_22.2 Other Documents #33 Programs #44 Scheduler Objects #5A Glossary #5_1A.1 Terms #5_2A.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.comEasy
 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 - Scope2 - References3 - Programs4 - Scheduler ObjectsA - Glossary 2 References 
2.1 CUPS Documentation 
The following CUPS documentation is referenced by this document:
CUPS-CMP-1.1: CUPS Configuration Management PlanCUPS-IDD-1.1: CUPS System Interface Design DescriptionCUPS-IPP-1.1: CUPS Implementation of IPPCUPS-SAM-1.1.x: CUPS Software Administrators ManualCUPS-SDD-1.1: CUPS Software Design DescriptionCUPS-SPM-1.1.x: CUPS Software Programming ManualCUPS-SSR-1.1: CUPS Software Security ReportCUPS-STP-1.1: CUPS Software Test PlanCUPS-SUM-1.1.x: CUPS Software Users ManualCUPS-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.pdfAdobe PostScript Printer Description File Format Specification, Version
 4.3.
http://partners.adobe.com/asn/developer/PDFS/TN/PLRM.pdfAdobe PostScript Language Reference, Third Edition.
IPP/1.1: Implementers Guide http://www.ietf.org/rfc/rfc1179.txtRFC 1179, Line Printer
 Daemon Protocol
http://www.ietf.org/rfc/rfc2396.txtRFC 2396, Uniform
 Resource Identifiers (URI): Generic Syntax
http://www.ietf.org/rfc/rfc2567.txtRFC 2567, Design Goals
 for an Internet Printing Protocol
http://www.ietf.org/rfc/rfc2568.txtRFC 2568, Rationale
 for the Structure of the Model and Protocol for the Internet Printing
 Protocol
http://www.ietf.org/rfc/rfc2569.txtRFC 2569, Mapping
 between LPD and IPP Protocols
http://www.ietf.org/rfc/rfc2616.txtRFC 2616, Hypertext
 Transfer Protocol -- HTTP/1.1
http://www.ietf.org/rfc/rfc2617.txtRFC 2617, HTTP
 Authentication: Basic and Digest Access
 Authentication http://www.ietf.org/rfc/rfc2910.txtRFC 2910, IPP/1.1:
 Encoding and Transport
http://www.ietf.org/rfc/rfc2911.txtRFC 2911, IPP/1.1:
 Model and Semantics
http://www.ietf.org/rfc/rfc3380.txtRFC 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.
BackendsProgramBase MemoryMax MemoryTemp
 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
CGIsProgramBase MemoryMax MemoryTemp
 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 ProgramsProgramBase MemoryMax MemoryTemp
 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 DaemonsProgramBase MemoryMax MemoryTemp
 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 FiltersProgramBase MemoryMax MemoryTemp
 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.
ObjectMemory PerDisk 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 
CA computer language.parallelSending or receiving data more than 1 bit at a time.pipeA one-way communications channel between two programs.serialSending or receiving data 1 bit at a time.socketA two-way network communications channel. A.2 Acronyms 
ASCIIAmerican Standard Code for Information InterchangeCUPSCommon UNIX Printing SystemESC/PEPSON Standard Code for PrintersFTPFile Transfer ProtocolHP-GLHewlett-Packard Graphics LanguageHP-PCLHewlett-Packard Page Control LanguageHP-PJLHewlett-Packard Printer Job LanguageIETFInternet Engineering Task ForceIPPInternet Printing ProtocolISOInternational Standards OrganizationLPDLine Printer DaemonMIMEMultimedia Internet Mail ExchangePPDPostScript Printer DescriptionSMBServer Message BlockTFTPTrivial File Transfer Protocol