236 lines
12 KiB
HTML
Vendored
236 lines
12 KiB
HTML
Vendored
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
<meta name="generator" content="Doxygen 1.13.1"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>dl: D:/dl/dl/memory/dl_memory_pool.h 文件参考</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<script type="text/javascript" src="clipboard.js"></script>
|
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="resize.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr id="projectrow">
|
|
<td id="projectalign">
|
|
<div id="projectname">dl
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- 制作者 Doxygen 1.13.1 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() { codefold.init(0); });
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() {
|
|
initMenu('',false,false,'search.php','搜索',false);
|
|
});
|
|
/* @license-end */
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function(){ initResizable(false); });
|
|
/* @license-end */
|
|
</script>
|
|
<div id="nav-path" class="navpath">
|
|
<ul>
|
|
<li class="navelem"><a class="el" href="dir_17297ffb27ce571941f5fb5008f01a1f.html">dl</a></li><li class="navelem"><a class="el" href="dir_880cbdb7e19477dab0ac315d644729fb.html">memory</a></li> </ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div id="doc-content">
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#nested-classes">类</a> |
|
|
<a href="#namespaces">命名空间</a> |
|
|
<a href="#func-members">函数</a> |
|
|
<a href="#var-members">变量</a> </div>
|
|
<div class="headertitle"><div class="title">dl_memory_pool.h 文件参考</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>基于引用计数的内存池
|
|
<a href="#details">更多...</a></p>
|
|
<div class="textblock"><code>#include <list></code><br />
|
|
<code>#include <cassert></code><br />
|
|
<code>#include <functional></code><br />
|
|
<code>#include <cstdlib></code><br />
|
|
<code>#include "<a class="el" href="dl__log_8h_source.html">io/dl_log.h</a>"</code><br />
|
|
<code>#include "<a class="el" href="dl__math_8h_source.html">math/dl_math.h</a>"</code><br />
|
|
</div>
|
|
<p><a href="dl__memory__pool_8h_source.html">浏览该文件的源代码.</a></p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
|
|
类</h2></td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structdl_1_1_gc_ref_info.html">dl::GcRefInfo</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classdl_1_1_g_c.html">dl::GC< T ></a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">引用计数对象,通过get_gc函数创建 <a href="classdl_1_1_g_c.html#details">更多...</a><br /></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classdl_1_1_pool_list.html">dl::PoolList< T ></a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">内存池数据 <a href="classdl_1_1_pool_list.html#details">更多...</a><br /></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classdl_1_1_memory_pool.html">dl::MemoryPool</a></td></tr>
|
|
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">内存池 <a href="classdl_1_1_memory_pool.html#details">更多...</a><br /></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
|
|
命名空间</h2></td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace  </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacedl.html">dl</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
|
函数</h2></td></tr>
|
|
<tr class="memitem:a106e7fc6f72449d977852f2771eddcda" id="r_a106e7fc6f72449d977852f2771eddcda"><td class="memTemplParams" colspan="2">template<typename <a class="el" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>, typename... Args> </td></tr>
|
|
<tr class="memitem:a106e7fc6f72449d977852f2771eddcda"><td class="memTemplItemLeft" align="right" valign="top">auto </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacedl.html#a106e7fc6f72449d977852f2771eddcda">dl::get_gc</a> (Args &&...args)</td></tr>
|
|
<tr class="memdesc:a106e7fc6f72449d977852f2771eddcda"><td class="mdescLeft"> </td><td class="mdescRight">定义一个GC变量(引用计数内存池) <br /></td></tr>
|
|
<tr class="separator:a106e7fc6f72449d977852f2771eddcda"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a>
|
|
变量</h2></td></tr>
|
|
<tr class="memitem:ad6bd092b3e266aa0935d7e5b16c6230e" id="r_ad6bd092b3e266aa0935d7e5b16c6230e"><td class="memItemLeft" align="right" valign="top">constexpr bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#ad6bd092b3e266aa0935d7e5b16c6230e">OUTPUT_DEBUG</a> = true</td></tr>
|
|
<tr class="separator:ad6bd092b3e266aa0935d7e5b16c6230e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a020806b9ca69ce6d6d50205576feb741" id="r_a020806b9ca69ce6d6d50205576feb741"><td class="memItemLeft" align="right" valign="top">constexpr bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#a020806b9ca69ce6d6d50205576feb741">OUTPUT_ADD</a> = true</td></tr>
|
|
<tr class="separator:a020806b9ca69ce6d6d50205576feb741"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aa5bc91b0e910898584fd4497c943359f" id="r_aa5bc91b0e910898584fd4497c943359f"><td class="memItemLeft" align="right" valign="top">constexpr bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#aa5bc91b0e910898584fd4497c943359f">OUTPUT_MOVE</a> = false</td></tr>
|
|
<tr class="separator:aa5bc91b0e910898584fd4497c943359f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a1e264ff1dd19be77f7a3852965bad1c8" id="r_a1e264ff1dd19be77f7a3852965bad1c8"><td class="memItemLeft" align="right" valign="top">constexpr bool </td><td class="memItemRight" valign="bottom"><a class="el" href="#a1e264ff1dd19be77f7a3852965bad1c8">OUTPUT_STACK</a> = false</td></tr>
|
|
<tr class="separator:a1e264ff1dd19be77f7a3852965bad1c8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
|
|
<div class="textblock"><p>基于引用计数的内存池 </p>
|
|
<dl class="section version"><dt>版本</dt><dd>1.0 </dd></dl>
|
|
<dl class="section author"><dt>作者</dt><dd>lveyou </dd></dl>
|
|
<dl class="section date"><dt>日期</dt><dd>21-08-30</dd></dl>
|
|
<dl class="section note"><dt>注解</dt><dd>内存池修改为维护1个free列表和1个used列表 </dd>
|
|
<dd>
|
|
定期将used列表引用计数为0的移动回free列表</dd>
|
|
<dd>
|
|
注意gc的类之间不要存在引用关系,不过也可以如下处理: </dd>
|
|
<dd>
|
|
gcText包含gcSprite,我们使PoolList<gcText>先释放即可 </dd></dl>
|
|
|
|
<p class="definition">在文件 <a class="el" href="dl__memory__pool_8h_source.html">dl_memory_pool.h</a> 中定义.</p>
|
|
</div><h2 class="groupheader">变量说明</h2>
|
|
<a id="a020806b9ca69ce6d6d50205576feb741" name="a020806b9ca69ce6d6d50205576feb741"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a020806b9ca69ce6d6d50205576feb741">◆ </a></span>OUTPUT_ADD</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool OUTPUT_ADD = true</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel constexpr">constexpr</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">在文件 <a class="el" href="dl__memory__pool_8h_source.html">dl_memory_pool.h</a> 第 <a class="el" href="dl__memory__pool_8h_source.html#l00032">32</a> 行定义.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ad6bd092b3e266aa0935d7e5b16c6230e" name="ad6bd092b3e266aa0935d7e5b16c6230e"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ad6bd092b3e266aa0935d7e5b16c6230e">◆ </a></span>OUTPUT_DEBUG</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool OUTPUT_DEBUG = true</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel constexpr">constexpr</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">在文件 <a class="el" href="dl__memory__pool_8h_source.html">dl_memory_pool.h</a> 第 <a class="el" href="dl__memory__pool_8h_source.html#l00031">31</a> 行定义.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aa5bc91b0e910898584fd4497c943359f" name="aa5bc91b0e910898584fd4497c943359f"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa5bc91b0e910898584fd4497c943359f">◆ </a></span>OUTPUT_MOVE</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool OUTPUT_MOVE = false</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel constexpr">constexpr</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">在文件 <a class="el" href="dl__memory__pool_8h_source.html">dl_memory_pool.h</a> 第 <a class="el" href="dl__memory__pool_8h_source.html#l00033">33</a> 行定义.</p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a1e264ff1dd19be77f7a3852965bad1c8" name="a1e264ff1dd19be77f7a3852965bad1c8"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a1e264ff1dd19be77f7a3852965bad1c8">◆ </a></span>OUTPUT_STACK</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool OUTPUT_STACK = false</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel constexpr">constexpr</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p class="definition">在文件 <a class="el" href="dl__memory__pool_8h_source.html">dl_memory_pool.h</a> 第 <a class="el" href="dl__memory__pool_8h_source.html#l00034">34</a> 行定义.</p>
|
|
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
<!-- start footer part -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1
|
|
</small></address>
|
|
</div><!-- doc-content -->
|
|
</body>
|
|
</html>
|