~ubuntu-branches/ubuntu/wily/sqlite3/wily

« back to all changes in this revision

Viewing changes to c3ref/soft_heap_limit64.html

  • Committer: Package Import Robot
  • Author(s): Laszlo Boszormenyi (GCS)
  • Date: 2012-06-13 21:43:48 UTC
  • mto: This revision was merged to the branch mainline in revision 23.
  • Revision ID: package-import@ubuntu.com-20120613214348-uy14uupdeq0hh04k
Tags: upstream-3.7.13/www
Import upstream version 3.7.13, component www

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 
2
<html><head>
 
3
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 
4
<title>Impose A Limit On Heap Size</title>
 
5
<style type="text/css">
 
6
body {
 
7
    margin: auto;
 
8
    font-family: Verdana, sans-serif;
 
9
    padding: 8px 1%;
 
10
}
 
11
 
 
12
a { color: #044a64 }
 
13
a:visited { color: #734559 }
 
14
 
 
15
.logo { position:absolute; margin:3px; }
 
16
.tagline {
 
17
  float:right;
 
18
  text-align:right;
 
19
  font-style:italic;
 
20
  width:300px;
 
21
  margin:12px;
 
22
  margin-top:58px;
 
23
}
 
24
 
 
25
.toolbar {
 
26
  text-align: center;
 
27
  line-height: 1.6em;
 
28
  margin: 0;
 
29
  padding: 0px 8px;
 
30
}
 
31
.toolbar a { color: white; text-decoration: none; padding: 6px 12px; }
 
32
.toolbar a:visited { color: white; }
 
33
.toolbar a:hover { color: #044a64; background: white; }
 
34
 
 
35
.content    { margin: 5%; }
 
36
.content dt { font-weight:bold; }
 
37
.content dd { margin-bottom: 25px; margin-left:20%; }
 
38
.content ul { padding:0px; padding-left: 15px; margin:0px; }
 
39
 
 
40
/* rounded corners */
 
41
.se  { background: url(../images/se.gif) 100% 100% no-repeat #044a64}
 
42
.sw  { background: url(../images/sw.gif) 0% 100% no-repeat }
 
43
.ne  { background: url(../images/ne.gif) 100% 0% no-repeat }
 
44
.nw  { background: url(../images/nw.gif) 0% 0% no-repeat }
 
45
 
 
46
/* Things for "fancyformat" documents start here. */
 
47
.fancy img+p {font-style:italic}
 
48
.fancy .codeblock i { color: darkblue; }
 
49
.fancy h1,.fancy h2,.fancy h3,.fancy h4 {font-weight:normal;color:#044a64}
 
50
.fancy h2 { margin-left: 10px }
 
51
.fancy h3 { margin-left: 20px }
 
52
.fancy h4 { margin-left: 30px }
 
53
.fancy th {white-space:nowrap;text-align:left;border-bottom:solid 1px #444}
 
54
.fancy th, .fancy td {padding: 0.2em 1ex; vertical-align:top}
 
55
.fancy #toc a        { color: darkblue ; text-decoration: none }
 
56
.fancy .todo         { color: #AA3333 ; font-style : italic }
 
57
.fancy .todo:before  { content: 'TODO:' }
 
58
.fancy p.todo        { border: solid #AA3333 1px; padding: 1ex }
 
59
.fancy img { display:block; }
 
60
.fancy :link:hover, .fancy :visited:hover { background: wheat }
 
61
.fancy p,.fancy ul,.fancy ol { margin: 1em 5ex }
 
62
.fancy li p { margin: 1em 0 }
 
63
/* End of "fancyformat" specific rules. */
 
64
 
 
65
</style>
 
66
  
 
67
</head>
 
68
<body>
 
69
<div><!-- container div to satisfy validator -->
 
70
 
 
71
<a href="../index.html">
 
72
<img class="logo" src="../images/sqlite370_banner.gif" alt="SQLite Logo"
 
73
 border="0"></a>
 
74
<div><!-- IE hack to prevent disappearing logo--></div>
 
75
<div class="tagline">Small. Fast. Reliable.<br>Choose any three.</div>
 
76
 
 
77
<table width=100% style="clear:both"><tr><td>
 
78
  <div class="se"><div class="sw"><div class="ne"><div class="nw">
 
79
  <table width=100% style="padding:0;margin:0;cell-spacing:0"><tr>
 
80
  <td width=100%>
 
81
  <div class="toolbar">
 
82
    <a href="../about.html">About</a>
 
83
    <a href="../sitemap.html">Sitemap</a>
 
84
    <a href="../docs.html">Documentation</a>
 
85
    <a href="../download.html">Download</a>
 
86
    <a href="../copyright.html">License</a>
 
87
    <a href="../news.html">News</a>
 
88
    <a href="../support.html">Support</a>
 
89
  </div>
 
90
<script>
 
91
  gMsg = "Search SQLite Docs..."
 
92
  function entersearch() {
 
93
    var q = document.getElementById("q");
 
94
    if( q.value == gMsg ) { q.value = "" }
 
95
    q.style.color = "black"
 
96
    q.style.fontStyle = "normal"
 
97
  }
 
98
  function leavesearch() {
 
99
    var q = document.getElementById("q");
 
100
    if( q.value == "" ) { 
 
101
      q.value = gMsg
 
102
      q.style.color = "#044a64"
 
103
      q.style.fontStyle = "italic"
 
104
    }
 
105
  }
 
106
</script>
 
107
<td>
 
108
    <div style="padding:0 1em 0px 0;white-space:nowrap">
 
109
    <form name=f method="GET" action="http://www.sqlite.org/search">
 
110
      <input id=q name=q type=text
 
111
       onfocus="entersearch()" onblur="leavesearch()" style="width:24ex;padding:1px 1ex; border:solid white 1px; font-size:0.9em ; font-style:italic;color:#044a64;" value="Search SQLite Docs...">
 
112
      <input type=submit value="Go" style="border:solid white 1px;background-color:#044a64;color:white;font-size:0.9em;padding:0 1ex">
 
113
    </form>
 
114
    </div>
 
115
  </table>
 
116
</div></div></div></div>
 
117
</td></tr></table>
 
118
<div class=startsearch></div>
 
119
  
 
120
<a href="intro.html"><h2>SQLite C Interface</h2></a><h2>Impose A Limit On Heap Size</h2><blockquote><pre>sqlite3_int64 sqlite3_soft_heap_limit64(sqlite3_int64 N);
 
121
</pre></blockquote><p>
 
122
The sqlite3_soft_heap_limit64() interface sets and/or queries the
 
123
soft limit on the amount of heap memory that may be allocated by SQLite.
 
124
SQLite strives to keep heap memory utilization below the soft heap
 
125
limit by reducing the number of pages held in the page cache
 
126
as heap memory usages approaches the limit.
 
127
The soft heap limit is "soft" because even though SQLite strives to stay
 
128
below the limit, it will exceed the limit rather than generate
 
129
an <a href="../c3ref/c_abort.html">SQLITE_NOMEM</a> error.  In other words, the soft heap limit
 
130
is advisory only.</p>
 
131
 
 
132
<p>The return value from sqlite3_soft_heap_limit64() is the size of
 
133
the soft heap limit prior to the call, or negative in the case of an
 
134
error.  If the argument N is negative
 
135
then no change is made to the soft heap limit.  Hence, the current
 
136
size of the soft heap limit can be determined by invoking
 
137
sqlite3_soft_heap_limit64() with a negative argument.</p>
 
138
 
 
139
<p>If the argument N is zero then the soft heap limit is disabled.</p>
 
140
 
 
141
<p>The soft heap limit is not enforced in the current implementation
 
142
if one or more of following conditions are true:</p>
 
143
 
 
144
<p><ul>
 
145
<li> The soft heap limit is set to zero.
 
146
<li> Memory accounting is disabled using a combination of the
 
147
<a href="../c3ref/config.html">sqlite3_config</a>(<a href="../c3ref/c_config_getmalloc.html#sqliteconfigmemstatus">SQLITE_CONFIG_MEMSTATUS</a>,...) start-time option and
 
148
the <a href="../compile.html#default_memstatus">SQLITE_DEFAULT_MEMSTATUS</a> compile-time option.
 
149
<li> An alternative page cache implementation is specified using
 
150
<a href="../c3ref/config.html">sqlite3_config</a>(<a href="../c3ref/c_config_getmalloc.html#sqliteconfigpcache2">SQLITE_CONFIG_PCACHE2</a>,...).
 
151
<li> The page cache allocates from its own memory pool supplied
 
152
by <a href="../c3ref/config.html">sqlite3_config</a>(<a href="../c3ref/c_config_getmalloc.html#sqliteconfigpagecache">SQLITE_CONFIG_PAGECACHE</a>,...) rather than
 
153
from the heap.
 
154
</ul></p>
 
155
 
 
156
<p>Beginning with SQLite version 3.7.3, the soft heap limit is enforced
 
157
regardless of whether or not the <a href="../compile.html#enable_memory_management">SQLITE_ENABLE_MEMORY_MANAGEMENT</a>
 
158
compile-time option is invoked.  With <a href="../compile.html#enable_memory_management">SQLITE_ENABLE_MEMORY_MANAGEMENT</a>,
 
159
the soft heap limit is enforced on every memory allocation.  Without
 
160
<a href="../compile.html#enable_memory_management">SQLITE_ENABLE_MEMORY_MANAGEMENT</a>, the soft heap limit is only enforced
 
161
when memory is allocated by the page cache.  Testing suggests that because
 
162
the page cache is the predominate memory user in SQLite, most
 
163
applications will achieve adequate soft heap limit enforcement without
 
164
the use of <a href="../compile.html#enable_memory_management">SQLITE_ENABLE_MEMORY_MANAGEMENT</a>.</p>
 
165
 
 
166
<p>The circumstances under which SQLite will enforce the soft heap limit may
 
167
changes in future releases of SQLite.
 
168
</p><p>See also lists of
 
169
  <a href="objlist.html">Objects</a>,
 
170
  <a href="constlist.html">Constants</a>, and
 
171
  <a href="funclist.html">Functions</a>.</p>