sps.shtml   [plain text]


<HTML>
<HEAD>
	<META NAME="COPYRIGHT" CONTENT="Copyright 1997-2005, All Rights Reserved">
	<META NAME="DOCNUMBER" CONTENT="CUPS-SPS-1.1">
	<META NAME="Author" CONTENT="Easy Software Products">
	<TITLE>CUPS Software Performance Specification</TITLE>
</HEAD>
<BODY>

<H1>Scope</H1>

<H2>Identification</H2>

<P>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.</P>

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

<EMBED SRC="system-overview.shtml">

<H2>Document Overview</H2>

<P>This software performance specification is organized into the
following sections:</P>

<UL>
	<LI>1 - Scope</LI>
	<LI>2 - References</LI>
	<LI>3 - Programs</LI>
	<LI>4 - Scheduler Objects</LI>
	<LI>A - Glossary</LI>
</UL>

<EMBED SRC="references.shtml">

<H1>Programs</H1>

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

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

<P>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.

<P>The temp files column indicates whether any temporary files are created.

<P>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.

<CENTER><TABLE WIDTH="80%" BORDER="1">
<TR>
	<TH COLSPAN="3">Backends</TH>
</TR>
<TR>
	<TH>Program</TH>
	<TH>Base Memory</TH>
	<TH>Max Memory</TH>
	<TH>Temp Files</TH>
	<TH>CPU Usage</TH>
</TR>
<TR>
	<TD>ipp</TD>
	<TD>91k</TD>
	<TD>256k</TD>
	<TD>Up to size of print file</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TD>lpd</TD>
	<TD>89k</TD>
	<TD>89k</TD>
	<TD>Up to size of print file</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TD>parallel</TD>
	<TD>85k</TD>
	<TD>85k</TD>
	<TD>Up to size of print file</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TD>serial</TD>
	<TD>85k</TD>
	<TD>85k</TD>
	<TD>Up to size of print file</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TD>socket</TD>
	<TD>85k</TD>
	<TD>85k</TD>
	<TD>Up to size of print file</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TD>usb</TD>
	<TD>85k</TD>
	<TD>85k</TD>
	<TD>Up to size of print file</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TH COLSPAN="3">CGIs</TH>
</TR>
<TR>
	<TH>Program</TH>
	<TH>Base Memory</TH>
	<TH>Max Memory</TH>
	<TH>Temp Files</TH>
	<TH>CPU Usage</TH>
</TR>
<TR>
	<TD>admin.cgi</TD>
	<TD>107k</TD>
	<TD>256k</TD>
	<TD>Up to size of PPD file</TD>
	<TD>Medium</TD>
</TR>
<TR>
	<TD>classes.cgi</TD>
	<TD>95k</TD>
	<TD>Size of class objects</TD>
	<TD>None</TD>
	<TD>Medium</TD>
</TR>
<TR>
	<TD>jobs.cgi</TD>
	<TD>93k</TD>
	<TD>Size of job objects</TD>
	<TD>None</TD>
	<TD>Medium</TD>
</TR>
<TR>
	<TD>printers.cgi</TD>
	<TD>95k</TD>
	<TD>Size of printer objects</TD>
	<TD>None</TD>
	<TD>Medium</TD>
</TR>
<TR>
	<TH COLSPAN="3">Command-Line Programs</TH>
</TR>
<TR>
	<TH>Program</TH>
	<TH>Base Memory</TH>
	<TH>Max Memory</TH>
	<TH>Temp Files</TH>
	<TH>CPU Usage</TH>
</TR>
<TR>
	<TD>accept</TD>
	<TD>88k</TD>
	<TD>128k</TD>
	<TD>None</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TD>cancel</TD>
	<TD>88k</TD>
	<TD>128k</TD>
	<TD>None</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TD>disable</TD>
	<TD>88k</TD>
	<TD>128k</TD>
	<TD>None</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TD>enable</TD>
	<TD>88k</TD>
	<TD>128k</TD>
	<TD>None</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TD>lp</TD>
	<TD>90k</TD>
	<TD>256k</TD>
	<TD>None</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TD>lpadmin</TD>
	<TD>148k</TD>
	<TD>256k</TD>
	<TD>None</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TD>lpc</TD>
	<TD>86k</TD>
	<TD>Size of job and printer objects</TD>
	<TD>None</TD>
	<TD>Medium</TD>
</TR>
<TR>
	<TD>lpinfo</TD>
	<TD>89k</TD>
	<TD>Size of device and PPD objects</TD>
	<TD>None</TD>
	<TD>Medium</TD>
</TR>
<TR>
	<TD>lpmove</TD>
	<TD>88k</TD>
	<TD>128k</TD>
	<TD>None</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TD>lpoptions</TD>
	<TD>89k</TD>
	<TD>128k</TD>
	<TD>None</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TD>lppasswd</TD>
	<TD>90k</TD>
	<TD>90k</TD>
	<TD>None</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TD>lpq</TD>
	<TD>87k</TD>
	<TD>Size of job objects</TD>
	<TD>None</TD>
	<TD>Medium</TD>
</TR>
<TR>
	<TD>lpr</TD>
	<TD>87k</TD>
	<TD>256k</TD>
	<TD>None</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TD>lprm</TD>
	<TD>84k</TD>
	<TD>128k</TD>
	<TD>None</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TD>lpstat</TD>
	<TD>119k</TD>
	<TD>Size of job, printer, and class objects</TD>
	<TD>None</TD>
	<TD>Medium</TD>
</TR>
<TR>
	<TD>reject</TD>
	<TD>88k</TD>
	<TD>128k</TD>
	<TD>None</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TH COLSPAN="3">Daemons</TH>
</TR>
<TR>
	<TH>Program</TH>
	<TH>Base Memory</TH>
	<TH>Max Memory</TH>
	<TH>Temp Files</TH>
	<TH>CPU Usage</TH>
</TR>
<TR>
	<TD>cups-lpd</TD>
	<TD>92k</TD>
	<TD>256k</TD>
	<TD>One file per control or data file from client</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TD>cupsd</TD>
	<TD>308k</TD>
	<TD>See Scheduler Requirements</TD>
	<TD>See Scheduler Requirements</TD>
	<TD>Medium</TD>
</TR>
<TR>
	<TD>cups-polld</TD>
	<TD>84k</TD>
	<TD>Size of printer and class objects</TD>
	<TD>None</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TH COLSPAN="3">Filters</TH>
</TR>
<TR>
	<TH>Program</TH>
	<TH>Base Memory</TH>
	<TH>Max Memory</TH>
	<TH>Temp Files</TH>
	<TH>CPU Usage</TH>
</TR>
<TR>
	<TD>hpgltops</TD>
	<TD>263k</TD>
	<TD>320k</TD>
	<TD>None</TD>
	<TD>Medium</TD>
</TR>
<TR>
	<TD>imagetops</TD>
	<TD>628k</TD>
	<TD>10M</TD>
	<TD>Swap file for uncompressed image data</TD>
	<TD>Medium</TD>
</TR>
<TR>
	<TD>imagetoraster</TD>
	<TD>652k</TD>
	<TD>10M</TD>
	<TD>Swap file for uncompressed image data</TD>
	<TD>High</TD>
</TR>
<TR>
	<TD>pstops</TD>
	<TD>775k</TD>
	<TD>840k</TD>
	<TD>Up to size of print file</TD>
	<TD>Medium</TD>
</TR>
<TR>
	<TD>pstoraster</TD>
	<TD>4M</TD>
	<TD>14M</TD>
	<TD>Swap file for command lists</TD>
	<TD>High</TD>
</TR>
<TR>
	<TD>rastertoepson</TD>
	<TD>693k</TD>
	<TD>1M</TD>
	<TD>None</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TD>rastertohp</TD>
	<TD>690k</TD>
	<TD>1M</TD>
	<TD>None</TD>
	<TD>Low</TD>
</TR>
<TR>
	<TD>texttops</TD>
	<TD>638k</TD>
	<TD>4*cols*rows</TD>
	<TD>None</TD>
	<TD>Low</TD>
</TR>
</TABLE></CENTER>


<H1>Scheduler Objects</H1>

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

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

<CENTER><TABLE WIDTH="80%" BORDER="1">
<TR>
	<TH>Object</TH>
	<TH>Memory Per</TH>
	<TH>Disk Per</TH>
</TR>
<TR>
	<TD>Browse ACL</TD>
	<TD>1k</TD>
	<TD>120</TD>
</TR>
<TR>
	<TD>Browse Poll</TD>
	<TD>24</TD>
	<TD>80</TD>
</TR>
<TR>
	<TD>Browse Relay</TD>
	<TD>28</TD>
	<TD>80</TD>
</TR>
<TR>
	<TD>Certificate</TD>
	<TD>76</TD>
	<TD>32</TD>
</TR>
<TR>
	<TD>Class</TD>
	<TD>9k</TD>
	<TD>200</TD>
</TR>
<TR>
	<TD>Client</TD>
	<TD>13k</TD>
	<TD>-</TD>
</TR>
<TR>
	<TD>Device</TD>
	<TD>256</TD>
	<TD>-</TD>
</TR>
<TR>
	<TD>Job</TD>
	<TD>2k</TD>
	<TD>1k + size of document files</TD>
</TR>
<TR>
	<TD>Location ACL</TD>
	<TD>1k</TD>
	<TD>120</TD>
</TR>
<TR>
	<TD>MIME Filter</TD>
	<TD>268</TD>
	<TD>80</TD>
</TR>
<TR>
	<TD>MIME Type</TD>
	<TD>340</TD>
	<TD>80</TD>
</TR>
<TR>
	<TD>PPD</TD>
	<TD>200</TD>
	<TD>656</TD>
</TR>
<TR>
	<TD>Printer</TD>
	<TD>11k</TD>
	<TD>32k</TD>
</TR>
</TABLE></CENTER>

<EMBED SRC="glossary.shtml">

</BODY>
</HTML>