]> git.ipfire.org Git - thirdparty/cups.git/blame - doc/sps.html
Load cups into easysw/current.
[thirdparty/cups.git] / doc / sps.html
CommitLineData
ef416fc2 1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
2<HTML>
3<HEAD>
4<TITLE>CUPS Software Performance Specification</TITLE>
5<META NAME="author" CONTENT="Easy Software Products">
6<META NAME="copyright" CONTENT="Copyright 1997-2003, All Rights Reserved">
7<META NAME="docnumber" CONTENT="CUPS-SPS-1.2">
8<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-8859-1">
9<STYLE TYPE="text/css"><!--
10BODY { font-family: serif }
11H1 { font-family: sans-serif }
12H2 { font-family: sans-serif }
13H3 { font-family: sans-serif }
14H4 { font-family: sans-serif }
15H5 { font-family: sans-serif }
16H6 { font-family: sans-serif }
17SUB { font-size: smaller }
18SUP { font-size: smaller }
19PRE { font-family: monospace }
20--></STYLE>
21</HEAD>
22<BODY>
23<CENTER><A HREF="#CONTENTS"><IMG SRC="images/cups-large.gif" BORDER="0" WIDTH="431" HEIGHT="511"><BR>
24<H1>CUPS Software Performance Specification</H1></A><BR>
25CUPS-SPS-1.2<BR>
26Easy Software Products<BR>
27Copyright 1997-2003, All Rights Reserved<BR>
28</CENTER>
29<HR>
30<H1 ALIGN="CENTER"><A NAME="CONTENTS">Table of Contents</A></H1>
31<BR>
32<BR><B><A HREF="#1">1 Scope</A></B>
33<UL>
34<LI><A HREF="#1_1">1.1 Identification</A></LI>
35<LI><A HREF="#1_2">1.2 System Overview</A></LI>
36<LI><A HREF="#1_3">1.3 Document Overview</A></LI>
37</UL>
38<B><A HREF="#2">2 References</A></B>
39<UL>
40<LI><A HREF="#2_1">2.1 CUPS Documentation</A></LI>
41<LI><A HREF="#2_2">2.2 Other Documents</A></LI>
42</UL>
43<B><A HREF="#3">3 Programs</A></B>
44<BR>
45<BR><B><A HREF="#4">4 Scheduler Objects</A></B>
46<BR>
47<BR><B><A HREF="#5">A Glossary</A></B>
48<UL>
49<LI><A HREF="#5_1">A.1 Terms</A></LI>
50<LI><A HREF="#5_2">A.2 Acronyms</A></LI>
51</UL>
52<HR>
53<H1><A NAME="1">1 Scope</A></H1>
54<H2><A NAME="1_1">1.1 Identification</A></H2>
55<P>This software performance specification provides an analysis of the
56 memory, disk, and processor utilitization of each program in the Common
57 UNIX Printing System (&quot;CUPS&quot;) Version 1.2.</P>
58<P>For the purposes of comparison, all figures are for the Linux Intel
59 platform. Memory utilization on other platforms should be similar.</P>
60<H2><A NAME="1_2">1.2 System Overview</A></H2>
61<P>CUPS provides a portable printing layer for UNIX&reg;-based operating
62 systems. It has been developed by<A HREF="http://www.easysw.com"> Easy
63 Software Products</A> to promote a standard printing solution for all
64 UNIX vendors and users. CUPS provides the System V and Berkeley
65 command-line interfaces.</P>
66<P>CUPS uses the Internet Printing Protocol (&quot;IPP&quot;) as the basis for
67 managing print jobs and queues. The Line Printer Daemon (&quot;LPD&quot;) Server
68 Message Block (&quot;SMB&quot;), and AppSocket (a.k.a. JetDirect) protocols are
69 also supported with reduced functionality. CUPS adds network printer
70 browsing and PostScript Printer Description (&quot;PPD&quot;) based printing
71 options to support real-world printing under UNIX.</P>
72<P>CUPS also includes a customized version of GNU Ghostscript (currently
73 based off GNU Ghostscript 5.50) and an image file RIP that are used to
74 support non-PostScript printers. Sample drivers for HP and EPSON
75 printers are included that use these filters.</P>
76<H2><A NAME="1_3">1.3 Document Overview</A></H2>
77<P>This software performance specification is organized into the
78 following sections:</P>
79<UL>
80<LI>1 - Scope</LI>
81<LI>2 - References</LI>
82<LI>3 - Programs</LI>
83<LI>4 - Scheduler Objects</LI>
84<LI>A - Glossary</LI>
85</UL>
86<H1><A NAME="2">2 References</A></H1>
87<H2><A NAME="2_1">2.1 CUPS Documentation</A></H2>
88<P>The following CUPS documentation is referenced by this document:</P>
89<UL>
90<LI>CUPS-CMP-1.2: CUPS Configuration Management Plan</LI>
91<LI>CUPS-IDD-1.2: CUPS System Interface Design Description</LI>
92<LI>CUPS-IPP-1.2: CUPS Implementation of IPP</LI>
93<LI>CUPS-SAM-1.2.x: CUPS Software Administrators Manual</LI>
94<LI>CUPS-SDD-1.2: CUPS Software Design Description</LI>
95<LI>CUPS-SPM-1.2.x: CUPS Software Programming Manual</LI>
96<LI>CUPS-SSR-1.2: CUPS Software Security Report</LI>
97<LI>CUPS-STP-1.2: CUPS Software Test Plan</LI>
98<LI>CUPS-SUM-1.2.x: CUPS Software Users Manual</LI>
99<LI>CUPS-SVD-1.2: CUPS Software Version Description</LI>
100</UL>
101<H2><A NAME="2_2">2.2 Other Documents</A></H2>
102<P>The following non-CUPS documents are referenced by this document:</P>
103<UL>
104<LI><A HREF="http://partners.adobe.com/asn/developer/PDFS/TN/5003.PPD_Spec_v4.3.pdf">
105Adobe PostScript Printer Description File Format Specification, Version
106 4.3.</A></LI>
107<LI><A HREF="http://partners.adobe.com/asn/developer/PDFS/TN/PLRM.pdf">
108Adobe PostScript Language Reference, Third Edition.</A></LI>
109<LI>IPP: Job and Printer Set Operations</LI>
110<LI>IPP/1.1: Encoding and Transport</LI>
111<LI>IPP/1.1: Implementers Guide</LI>
112<LI>IPP/1.1: Model and Semantics</LI>
113<LI><A HREF="http://www.ietf.org/rfc/rfc1179.txt">RFC 1179, Line Printer
114 Daemon Protocol</A></LI>
115<LI><A HREF="http://www.ietf.org/rfc/rfc2567.txt">RFC 2567, Design Goals
116 for an Internet Printing Protocol</A></LI>
117<LI><A HREF="http://www.ietf.org/rfc/rfc2568.txt">RFC 2568, Rationale
118 for the Structure of the Model and Protocol for the Internet Printing
119 Protocol</A></LI>
120<LI><A HREF="http://www.ietf.org/rfc/rfc2569.txt">RFC 2569, Mapping
121 between LPD and IPP Protocols</A></LI>
122<LI><A HREF="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616, Hypertext
123 Transfer Protocol -- HTTP/1.1</A></LI>
124<LI><A HREF="http://www.ietf.org/rfc/rfc2617.txt">RFC 2617, HTTP
125 Authentication: Basic and Digest Access</A> Authentication</LI>
126</UL>
127<H1><A NAME="3">3 Programs</A></H1>
128<P>The following table describes the average memory, disk, and CPU usage
129 of each program in CUPS.</P>
130<P>The base memory column shows the initial memory requirements for each
131 program, including any shared libraries that are provided by CUPS.</P>
132<P>The max memory column shows the maximum amount of memory that will be
133 used by the program based upon the default configuration settings
134 supplied with CUPS.</P>
135<P>The temp files column indicates whether any temporary files are
136 created.</P>
137<P>The CPU usage column specifies a relative CPU usage by the program
138 under normal conditions, either low, medium, or high. Low usage
139 indicates that the program will never use more than 33% of the
140 available CPU time. Medium usage indicates the program will use as much
141 as 66% of the available CPU time. High usage indicates the program uses
142 66% or more of the available CPU time.
143<CENTER>
144<TABLE BORDER="1" WIDTH="80%">
145<TR><TH COLSPAN="3">Backends</TH></TR>
146<TR><TH>Program</TH><TH>Base Memory</TH><TH>Max Memory</TH><TH>Temp
147 Files</TH><TH>CPU Usage</TH></TR>
148<TR><TD>ipp</TD><TD>91k</TD><TD>256k</TD><TD>Up to size of print file</TD><TD>
149Low</TD></TR>
150<TR><TD>lpd</TD><TD>89k</TD><TD>89k</TD><TD>Up to size of print file</TD><TD>
151Low</TD></TR>
152<TR><TD>parallel</TD><TD>85k</TD><TD>85k</TD><TD>Up to size of print
153 file</TD><TD>Low</TD></TR>
154<TR><TD>serial</TD><TD>85k</TD><TD>85k</TD><TD>Up to size of print file</TD><TD>
155Low</TD></TR>
156<TR><TD>socket</TD><TD>85k</TD><TD>85k</TD><TD>Up to size of print file</TD><TD>
157Low</TD></TR>
158<TR><TD>usb</TD><TD>85k</TD><TD>85k</TD><TD>Up to size of print file</TD><TD>
159Low</TD></TR>
160<TR><TH COLSPAN="3">CGIs</TH></TR>
161<TR><TH>Program</TH><TH>Base Memory</TH><TH>Max Memory</TH><TH>Temp
162 Files</TH><TH>CPU Usage</TH></TR>
163<TR><TD>admin.cgi</TD><TD>107k</TD><TD>256k</TD><TD>Up to size of PPD
164 file</TD><TD>Medium</TD></TR>
165<TR><TD>classes.cgi</TD><TD>95k</TD><TD>Size of class objects</TD><TD>
166None</TD><TD>Medium</TD></TR>
167<TR><TD>jobs.cgi</TD><TD>93k</TD><TD>Size of job objects</TD><TD>None</TD><TD>
168Medium</TD></TR>
169<TR><TD>printers.cgi</TD><TD>95k</TD><TD>Size of printer objects</TD><TD>
170None</TD><TD>Medium</TD></TR>
171<TR><TH COLSPAN="3">Command-Line Programs</TH></TR>
172<TR><TH>Program</TH><TH>Base Memory</TH><TH>Max Memory</TH><TH>Temp
173 Files</TH><TH>CPU Usage</TH></TR>
174<TR><TD>accept</TD><TD>88k</TD><TD>128k</TD><TD>None</TD><TD>Low</TD></TR>
175<TR><TD>cancel</TD><TD>88k</TD><TD>128k</TD><TD>None</TD><TD>Low</TD></TR>
176<TR><TD>disable</TD><TD>88k</TD><TD>128k</TD><TD>None</TD><TD>Low</TD></TR>
177<TR><TD>enable</TD><TD>88k</TD><TD>128k</TD><TD>None</TD><TD>Low</TD></TR>
178<TR><TD>lp</TD><TD>90k</TD><TD>256k</TD><TD>None</TD><TD>Low</TD></TR>
179<TR><TD>lpadmin</TD><TD>148k</TD><TD>256k</TD><TD>None</TD><TD>Low</TD></TR>
180<TR><TD>lpc</TD><TD>86k</TD><TD>Size of job and printer objects</TD><TD>
181None</TD><TD>Medium</TD></TR>
182<TR><TD>lpinfo</TD><TD>89k</TD><TD>Size of device and PPD objects</TD><TD>
183None</TD><TD>Medium</TD></TR>
184<TR><TD>lpmove</TD><TD>88k</TD><TD>128k</TD><TD>None</TD><TD>Low</TD></TR>
185<TR><TD>lpoptions</TD><TD>89k</TD><TD>128k</TD><TD>None</TD><TD>Low</TD></TR>
186<TR><TD>lppasswd</TD><TD>90k</TD><TD>90k</TD><TD>None</TD><TD>Low</TD></TR>
187<TR><TD>lpq</TD><TD>87k</TD><TD>Size of job objects</TD><TD>None</TD><TD>
188Medium</TD></TR>
189<TR><TD>lpr</TD><TD>87k</TD><TD>256k</TD><TD>None</TD><TD>Low</TD></TR>
190<TR><TD>lprm</TD><TD>84k</TD><TD>128k</TD><TD>None</TD><TD>Low</TD></TR>
191<TR><TD>lpstat</TD><TD>119k</TD><TD>Size of job, printer, and class
192 objects</TD><TD>None</TD><TD>Medium</TD></TR>
193<TR><TD>reject</TD><TD>88k</TD><TD>128k</TD><TD>None</TD><TD>Low</TD></TR>
194<TR><TH COLSPAN="3">Daemons</TH></TR>
195<TR><TH>Program</TH><TH>Base Memory</TH><TH>Max Memory</TH><TH>Temp
196 Files</TH><TH>CPU Usage</TH></TR>
197<TR><TD>cups-lpd</TD><TD>92k</TD><TD>256k</TD><TD>One file per control
198 or data file from client</TD><TD>Low</TD></TR>
199<TR><TD>cupsd</TD><TD>308k</TD><TD>See Scheduler Requirements</TD><TD>
200See Scheduler Requirements</TD><TD>Medium</TD></TR>
201<TR><TD>cups-polld</TD><TD>84k</TD><TD>Size of printer and class objects</TD><TD>
202None</TD><TD>Low</TD></TR>
203<TR><TH COLSPAN="3">Filters</TH></TR>
204<TR><TH>Program</TH><TH>Base Memory</TH><TH>Max Memory</TH><TH>Temp
205 Files</TH><TH>CPU Usage</TH></TR>
206<TR><TD>hpgltops</TD><TD>263k</TD><TD>320k</TD><TD>None</TD><TD>Medium</TD>
207</TR>
208<TR><TD>imagetops</TD><TD>628k</TD><TD>10M</TD><TD>Swap file for
209 uncompressed image data</TD><TD>Medium</TD></TR>
210<TR><TD>imagetoraster</TD><TD>652k</TD><TD>10M</TD><TD>Swap file for
211 uncompressed image data</TD><TD>High</TD></TR>
212<TR><TD>pstops</TD><TD>775k</TD><TD>840k</TD><TD>Up to size of print
213 file</TD><TD>Medium</TD></TR>
214<TR><TD>pstoraster</TD><TD>4M</TD><TD>14M</TD><TD>Swap file for command
215 lists</TD><TD>High</TD></TR>
216<TR><TD>rastertoepson</TD><TD>693k</TD><TD>1M</TD><TD>None</TD><TD>Low</TD>
217</TR>
218<TR><TD>rastertohp</TD><TD>690k</TD><TD>1M</TD><TD>None</TD><TD>Low</TD></TR>
219<TR><TD>texttops</TD><TD>638k</TD><TD>4*cols*rows</TD><TD>None</TD><TD>
220Low</TD></TR>
221</TABLE>
222</CENTER>
223</P>
224<H1><A NAME="4">4 Scheduler Objects</A></H1>
225<P>The <CODE>cupsd</CODE> program is the CUPS scheduler process. It
226 manages many interdependent server objects that are used to manage and
227 print files to printers.</P>
228<P>The following table provides the memory and disk cost associated with
229 each server object.
230<CENTER>
231<TABLE BORDER="1" WIDTH="80%">
232<TR><TH>Object</TH><TH>Memory Per</TH><TH>Disk Per</TH></TR>
233<TR><TD>Browse ACL</TD><TD>1k</TD><TD>120</TD></TR>
234<TR><TD>Browse Poll</TD><TD>24</TD><TD>80</TD></TR>
235<TR><TD>Browse Relay</TD><TD>28</TD><TD>80</TD></TR>
236<TR><TD>Certificate</TD><TD>76</TD><TD>32</TD></TR>
237<TR><TD>Class</TD><TD>9k</TD><TD>200</TD></TR>
238<TR><TD>Client</TD><TD>13k</TD><TD>-</TD></TR>
239<TR><TD>Device</TD><TD>256</TD><TD>-</TD></TR>
240<TR><TD>Job</TD><TD>2k</TD><TD>1k + size of document files</TD></TR>
241<TR><TD>Location ACL</TD><TD>1k</TD><TD>120</TD></TR>
242<TR><TD>MIME Filter</TD><TD>268</TD><TD>80</TD></TR>
243<TR><TD>MIME Type</TD><TD>340</TD><TD>80</TD></TR>
244<TR><TD>PPD</TD><TD>200</TD><TD>656</TD></TR>
245<TR><TD>Printer</TD><TD>11k</TD><TD>32k</TD></TR>
246</TABLE>
247</CENTER>
248</P>
249<H1 TYPE="A" VALUE="1"><A NAME="5">A Glossary</A></H1>
250<H2><A NAME="5_1">A.1 Terms</A></H2>
251<DL>
252<DT>C</DT>
253<DD>A computer language.</DD>
254<DT>parallel</DT>
255<DD>Sending or receiving data more than 1 bit at a time.</DD>
256<DT>pipe</DT>
257<DD>A one-way communications channel between two programs.</DD>
258<DT>serial</DT>
259<DD>Sending or receiving data 1 bit at a time.</DD>
260<DT>socket</DT>
261<DD>A two-way network communications channel.</DD>
262</DL>
263<H2><A NAME="5_2">A.2 Acronyms</A></H2>
264<DL>
265<DT>ASCII</DT>
266<DD>American Standard Code for Information Interchange</DD>
267<DT>CUPS</DT>
268<DD>Common UNIX Printing System</DD>
269<DT>ESC/P</DT>
270<DD>EPSON Standard Code for Printers</DD>
271<DT>FTP</DT>
272<DD>File Transfer Protocol</DD>
273<DT>HP-GL</DT>
274<DD>Hewlett-Packard Graphics Language</DD>
275<DT>HP-PCL</DT>
276<DD>Hewlett-Packard Page Control Language</DD>
277<DT>HP-PJL</DT>
278<DD>Hewlett-Packard Printer Job Language</DD>
279<DT>IETF</DT>
280<DD>Internet Engineering Task Force</DD>
281<DT>IPP</DT>
282<DD>Internet Printing Protocol</DD>
283<DT>ISO</DT>
284<DD>International Standards Organization</DD>
285<DT>LPD</DT>
286<DD>Line Printer Daemon</DD>
287<DT>MIME</DT>
288<DD>Multimedia Internet Mail Exchange</DD>
289<DT>PPD</DT>
290<DD>PostScript Printer Description</DD>
291<DT>SMB</DT>
292<DD>Server Message Block</DD>
293<DT>TFTP</DT>
294<DD>Trivial File Transfer Protocol</DD>
295</DL>
296</BODY>
297</HTML>