summaryrefslogtreecommitdiff
path: root/libs/regex/doc/html/boost_regex/configuration/tuning.html
blob: 160439f2d41b0fa127bfe7575f3616bf1886cc77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Algorithm Tuning</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
<link rel="home" href="../../index.html" title="Boost.Regex 5.0.1">
<link rel="up" href="../configuration.html" title="Configuration">
<link rel="prev" href="algorithm.html" title="Algorithm Selection">
<link rel="next" href="../install.html" title="Building and Installing the Library">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="algorithm.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../configuration.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../install.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_regex.configuration.tuning"></a><a class="link" href="tuning.html" title="Algorithm Tuning">Algorithm Tuning</a>
</h3></div></div></div>
<p>
        The following option applies only if BOOST_REGEX_RECURSIVE is set.
      </p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                <p>
                  macro
                </p>
              </th>
<th>
                <p>
                  description
                </p>
              </th>
</tr></thead>
<tbody><tr>
<td>
                <p>
                  BOOST_REGEX_HAS_MS_STACK_GUARD
                </p>
              </td>
<td>
                <p>
                  Tells Boost.Regex that Microsoft style __try - __except blocks
                  are supported, and can be used to safely trap stack overflow.
                </p>
              </td>
</tr></tbody>
</table></div>
<p>
        The following options apply only if BOOST_REGEX_NON_RECURSIVE is set.
      </p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                <p>
                  macro
                </p>
              </th>
<th>
                <p>
                  description
                </p>
              </th>
</tr></thead>
<tbody>
<tr>
<td>
                <p>
                  BOOST_REGEX_BLOCKSIZE
                </p>
              </td>
<td>
                <p>
                  In non-recursive mode, Boost.Regex uses largish blocks of memory
                  to act as a stack for the state machine, the larger the block size
                  then the fewer allocations that will take place. This defaults
                  to 4096 bytes, which is large enough to match the vast majority
                  of regular expressions without further allocations, however, you
                  can choose smaller or larger values depending upon your platforms
                  characteristics.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  BOOST_REGEX_MAX_BLOCKS
                </p>
              </td>
<td>
                <p>
                  Tells Boost.Regex how many blocks of size BOOST_REGEX_BLOCKSIZE
                  it is permitted to use. If this value is exceeded then Boost.Regex
                  will stop trying to find a match and throw a std::runtime_error.
                  Defaults to 1024, don't forget to tweak this value if you alter
                  BOOST_REGEX_BLOCKSIZE by much.
                </p>
              </td>
</tr>
<tr>
<td>
                <p>
                  BOOST_REGEX_MAX_CACHE_BLOCKS
                </p>
              </td>
<td>
                <p>
                  Tells Boost.Regex how many memory blocks to store in it's internal
                  cache - memory blocks are taken from this cache rather than by
                  calling ::operator new. Generally speaking this can be an order
                  of magnitude faster than calling ::opertator new each time a memory
                  block is required, but has the downside that Boost.Regex can end
                  up caching a large chunk of memory (by default up to 16 blocks
                  each of BOOST_REGEX_BLOCKSIZE size). If memory is tight then try
                  defining this to 0 (disables all caching), or if that is too slow,
                  then a value of 1 or 2, may be sufficient. On the other hand, on
                  large multi-processor, multi-threaded systems, you may find that
                  a higher value is in order.
                </p>
              </td>
</tr>
</tbody>
</table></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 1998-2013 John Maddock<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="algorithm.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../configuration.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../install.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>