4
***********************************************************************
5
FUNNELWEB MANUAL WEB PAGE
6
=========================
7
Copyright (c) Ross N. Williams 1992,1999. All rights reserved.
9
Permission is granted to redistribute and use this manual in
10
any medium, with or without modification, provided that all
11
notices (including, without limitation, the copyright
12
notice, this permission notice, any record of modification,
13
and all legal notices) are preserved on all copies, that all
14
modifications are clearly marked, and that modified versions
15
are not represented as the original version unless all the
16
modifications since the manual's original release by Ross N.
17
Williams (www.ross.net) consist of translations or other
18
transformations that alter only the manual's form, not its
19
content. THIS MANUAL IS PROVIDED "AS IS" AND WITHOUT ANY
20
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT
21
LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND
22
FITNESS FOR A PARTICULAR PURPOSE. TO THE EXTENT PERMITTED BY
23
LAW THERE IS ABSOLUTELY NO WARRANTY.
25
***********************************************************************
29
<TITLE>5.7 Efficiency Notes</TITLE>
30
<STYLE TYPE="text/css"> <!-- A {text-decoration: none} // --> </STYLE>
32
<BODY BACKGROUND="binary/background.gif"
41
<TD WIDTH="130" VALIGN="top">
42
<IMG SRC="binary/d_clear.gif" ALT="" WIDTH="130" HEIGHT="1"><BR>
47
<A HREF="http://www.ross.net/"
49
onClick="window.open('','rosshome','location,status,menubar,scrollbars,resizable',false).focus(); return true;"
51
<IMG SRC="binary/rossnet_logo.gif"
52
WIDTH="64" HEIGHT="32"
53
BORDER="0" ALT="RossNet"
54
HSPACE="0" VSPACE="1"></A><BR>
57
<A HREF="../index.shtml"
59
onClick="window.open('','funnelweb','location,status,menubar,scrollbars,resizable',false).focus(); return true;"
61
<IMG SRC="binary/linklogo.gif"
62
WIDTH="64" HEIGHT="32"
63
BORDER="0" ALT="FunnelWeb"
64
HSPACE="0" VSPACE="1"></A><BR>
66
<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0><TR><TD BGCOLOR="#000000">
67
<A HREF="../reference/index.html"
68
TARGET="funnelwebreference"
69
onClick="window.open('','funnelwebreference','location,status,menubar,scrollbars,resizable',false).focus(); return true;"
70
><FONT COLOR="#FFFFFF"><B>Reference</B></FONT></A><BR>
72
<A HREF="../developer/index.html"
73
TARGET="funnelwebdeveloper"
74
onClick="window.open('','funnelwebdeveloper','location,status,menubar,scrollbars,resizable',false).focus(); return true;"
75
><FONT COLOR="#FFFFFF"><B>Developer</B></FONT></A><BR>
77
<A HREF="index.html"><FONT COLOR="#FFFFFF"><B>Tutorial</B></FONT></A><BR>
78
<A HREF="intro.html"><FONT COLOR="#FFFFFF">1 Introduction</FONT></A><BR>
79
<A HREF="macro.html"><FONT COLOR="#FFFFFF">2 Macros</FONT></A><BR>
80
<A HREF="type.html"><FONT COLOR="#FFFFFF">3 Typesetting</FONT></A><BR>
81
<A HREF="example.html"><FONT COLOR="#FFFFFF">4 Example</FONT></A><BR>
82
<A HREF="hints.html"><FONT COLOR="#FFFFFF">5 Hints</FONT></A><BR>
83
<A HREF="examples.html"><FONT COLOR="#FFFFFF">6 Examples</FONT></A><BR>
84
<A HREF="web.html"><FONT COLOR="#FFFFFF">7 Webmaking</FONT></A><BR>
87
<A HREF="search.html"><FONT COLOR="#FFFFFF"><B>SEARCH</B></FONT></A><BR>
93
<TD WIDTH="360" VALIGN="top">
97
<A HREF="../reference/index.html"><IMG SRC="binary/title.gif"
98
WIDTH="302" HEIGHT="24"
99
BORDER="0" ALT="FunnelWeb Tutorial Manual"
100
HSPACE="0" VSPACE="0"></A>
101
<P><FONT SIZE="5">5.7 Efficiency Notes</FONT><BR>
105
<P>The following notes are worth keeping in mind when
108
<P><BLOCKQUOTE><B>Memory:</B> When
109
FunnelWeb processes an input file, it reads the entire input
110
file, and all the included files into memory. (Note: If a
111
file is included n times, FunnelWeb keeps n copies in
112
memory). This organization does not pose a constraint on
113
machines with large memories, but could present a problem on
114
the smaller machines such as the PC.</BLOCKQUOTE>
116
<P><BLOCKQUOTE><B>Speed:</B> FunnelWeb is not a
117
slow program. However, it is not particularly fast either.
118
If the speed at which FunnelWeb runs is important to you,
119
then the thing to keep in mind is that FunnelWeb has been
120
optimized to deal efficiently with large slabs of text.
121
FunnelWeb treats input files as a sequence of text slabs and
122
special sequences (e.g. <SAMP>@+</SAMP>) and whenever it hits
123
a special sequence, it has to stop and think. Thus, while a
124
ten megabyte text slab would be manipulated as a single
125
token, in a few milliseconds, a similar ten megabyte chunk
126
filled with special sequences would take a lot longer. If
127
FunnelWeb is running slowly, look to see if the input
128
contains a high density of special sequences. This can
129
sometimes happen if FunnelWeb is being used as a backend
130
macro processor and its input is being generated
131
automatically by some other program.</BLOCKQUOTE>
133
<P><BLOCKQUOTE><B>Macro
134
expansion:</B> When tangling
135
(expanding macros), FunnelWeb never expands a macro
136
expression into memory; it always writes it to the product
137
file as it goes. This is a powerful fact, because it means
138
that you can write macros containing an unlimited amount of
139
text, and pass such macros as parameters to other macros
140
without becoming concerned about overflowing some kind of
141
buffer memory. In short, FunnelWeb does not impose any
142
limits on the size of macro bodies or their expansions.</BLOCKQUOTE>
148
<TD ALIGN="left" VALIGN="bottom"><A HREF="hints_headings.html"><IMG SRC="binary/fw_left.gif" HEIGHT="32" WIDTH="32" BORDER="0" ALT="Prev"></A></TD>
149
<TD ALIGN="center" VALIGN="bottom"><A HREF="hints.html"><IMG SRC="binary/fw_up.gif" HEIGHT="32" WIDTH="32" BORDER="0" ALT="Up"></A></TD>
150
<TD ALIGN="right" VALIGN="bottom"><A HREF="hints_interactive.html"><IMG SRC="binary/fw_right.gif" HEIGHT="32" WIDTH="32" BORDER="0" ALT="Next"></A></TD>
158
<A HREF="mailto:webmaster@ross.net">Webmaster</A>
159
<A HREF="copyright.html">Copyright © Ross N. Williams 1992,1999. All rights reserved.</A><BR>
170
<!-- *********************************************************************** -->
171
<!-- End Of A FunnelWeb Manual Web Page (www.ross.net/funnelweb/) -->
172
<!-- *********************************************************************** -->