📄 soft_heap_limit.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><title>Impose A Limit On Heap Size</title><style type="text/css">body { margin: auto; font-family: "Verdana" "sans-serif"; padding: 8px 1%;}a { color: #45735f }a:visited { color: #734559 }.logo { position:absolute; margin:3px; }.tagline { float:right; text-align:right; font-style:italic; width:240px; margin:12px; margin-top:58px;}.toolbar { font-variant: small-caps; text-align: center; line-height: 1.6em; margin: 0; padding:1px 8px;}.toolbar a { color: white; text-decoration: none; padding: 6px 12px; }.toolbar a:visited { color: white; }.toolbar a:hover { color: #80a796; background: white; }.content { margin: 5%; }.content dt { font-weight:bold; }.content dd { margin-bottom: 25px; margin-left:20%; }.content ul { padding:0px; padding-left: 15px; margin:0px; }/* rounded corners */.se { background: url(../images/se.png) 100% 100% no-repeat #80a796}.sw { background: url(../images/sw.png) 0% 100% no-repeat }.ne { background: url(../images/ne.png) 100% 0% no-repeat }.nw { background: url(../images/nw.png) 0% 0% no-repeat }</style><meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head><body><div><!-- container div to satisfy validator --><a href="../index.html"><img class="logo" src="../images/SQLite.gif" alt="SQLite Logo" border="0"></a><div><!-- IE hack to prevent disappearing logo--></div><div class="tagline">Small. Fast. Reliable.<br>Choose any three.</div><table width=100% style="clear:both"><tr><td> <div class="se"><div class="sw"><div class="ne"><div class="nw"> <div class="toolbar"> <a href="../about.html">About</a> <a href="../sitemap.html">Sitemap</a> <a href="../docs.html">Documentation</a> <a href="../download.html">Download</a> <a href="../copyright.html">License</a> <a href="../news.html">News</a> <a href="http://www.sqlite.org/cvstrac/index">Developers</a> <a href="../support.html">Support</a> </div></div></div></div></div></td></tr></table> <a href="intro.html"><h2>SQLite C Interface</h2></a><h2>Impose A Limit On Heap Size</h2><blockquote><pre>void sqlite3_soft_heap_limit(int);</pre></blockquote><p>The sqlite3_soft_heap_limit() interface places a "soft" limiton the amount of heap memory that may be allocated by SQLite.If an internal allocation is requested that would exceed thesoft heap limit, <a href="../c3ref/release_memory.html">sqlite3_release_memory()</a> is invoked one ormore times to free up some space before the allocation is performed.</p><p>The limit is called "soft", because if <a href="../c3ref/release_memory.html">sqlite3_release_memory()</a>cannot free sufficient memory to prevent the limit from being exceeded,the memory is allocated anyway and the current operation proceeds.</p><p>A negative or zero value for N means that there is no soft heap limit and<a href="../c3ref/release_memory.html">sqlite3_release_memory()</a> will only be called when memory is exhausted.The default value for the soft heap limit is zero.</p><p>SQLite makes a best effort to honor the soft heap limit.But if the soft heap limit cannot be honored, execution willcontinue without error or notification. This is why the limit iscalled a "soft" limit. It is advisory only.</p><p>Prior to SQLite version 3.5.0, this routine only constrained the memoryallocated by a single thread - the same thread in which this routineruns. Beginning with SQLite version 3.5.0, the soft heap limit isapplied to all threads. The value specified for the soft heap limitis an upper bound on the total memory allocation for all threads. Inversion 3.5.0 there is no mechanism for limiting the heap usage forindividual threads.</p><p><h3>Invariants:</h3><table border="0" cellpadding="5" cellspacing="0"><tr><td valign="top">H16351</td> <td valign="top">The <a href="../c3ref/soft_heap_limit.html">sqlite3_soft_heap_limit(N)</a> interface places a soft limitof N bytes on the amount of heap memory that may be allocatedusing <a href="../c3ref/free.html">sqlite3_malloc()</a> or <a href="../c3ref/free.html">sqlite3_realloc()</a> at any pointin time.</td></tr><tr><td valign="top">H16352</td> <td valign="top">If a call to <a href="../c3ref/free.html">sqlite3_malloc()</a> or <a href="../c3ref/free.html">sqlite3_realloc()</a> wouldcause the total amount of allocated memory to exceed thesoft heap limit, then <a href="../c3ref/release_memory.html">sqlite3_release_memory()</a> is invokedin an attempt to reduce the memory usage prior to proceedingwith the memory allocation attempt.</td></tr><tr><td valign="top">H16353</td> <td valign="top">Calls to <a href="../c3ref/free.html">sqlite3_malloc()</a> or <a href="../c3ref/free.html">sqlite3_realloc()</a> that triggerattempts to reduce memory usage through the soft heap limitmechanism continue even if the attempt to reduce memoryusage is unsuccessful.</td></tr><tr><td valign="top">H16354</td> <td valign="top">A negative or zero value for N in a call to<a href="../c3ref/soft_heap_limit.html">sqlite3_soft_heap_limit(N)</a> means that there is no softheap limit and <a href="../c3ref/release_memory.html">sqlite3_release_memory()</a> will only becalled when memory is completely exhausted.</td></tr><tr><td valign="top">H16355</td> <td valign="top">The default value for the soft heap limit is zero.</td></tr><tr><td valign="top">H16358</td> <td valign="top">Each call to <a href="../c3ref/soft_heap_limit.html">sqlite3_soft_heap_limit(N)</a> overrides thevalues set by all prior calls.</td></tr></table></p><p>See also lists of <a href="objlist.html">Objects</a>, <a href="constlist.html">Constants</a>, and <a href="funclist.html">Functions</a>.</p><hr><small><i>This page last modified 2008/08/11 17:57:43 UTC</i></small></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -