<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>StdExt/WinxGui/Erlang/Erlana - 许式伟的专栏 - 内存管理（Memory）</title><link>http://blog.csdn.net/xushiweizh/category/265099.aspx</link><description /><dc:language>zh-CN</dc:language><lastUpdateTime>Wed, 09 Apr 2008 21:26:00 GMT</lastUpdateTime><ttl>60</ttl><item><dc:creator>许式伟</dc:creator><title>C++内存管理变革(8)：Lock Free（无锁）的GC Allocator</title><link>http://blog.csdn.net/xushiweizh/archive/2008/03/05/2150806.aspx</link><pubDate>Wed, 05 Mar 2008 16:25:00 GMT</pubDate><guid>http://blog.csdn.net/xushiweizh/archive/2008/03/05/2150806.aspx</guid><wfw:comment>http://blog.csdn.net/xushiweizh/comments/2150806.aspx</wfw:comment><comments>http://blog.csdn.net/xushiweizh/archive/2008/03/05/2150806.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blog.csdn.net/xushiweizh/comments/commentRss/2150806.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2150806</trackback:ping><description>随着多核趋势的明朗，对软件来说，这意味一次巨变。多核时代，注定要改变计算机发展历史。在我们还在努力学习OO方法论时，须不知，一场新的颠覆性的编程革命到来了。内存管理是程序语言中的最基础的设施。如果你长期做服务端的开发，一定知道，服务器性能调优的关键在于内存管理。为什么GC Allocator是Lock Free（无锁）的？&lt;img src ="http://blog.csdn.net/xushiweizh/aggbug/2150806.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>许式伟</dc:creator><title>C++内存管理变革(7)：基于ScopeAlloc的STL容器</title><link>http://blog.csdn.net/xushiweizh/archive/2008/02/04/2083718.aspx</link><pubDate>Mon, 04 Feb 2008 15:03:00 GMT</pubDate><guid>http://blog.csdn.net/xushiweizh/archive/2008/02/04/2083718.aspx</guid><wfw:comment>http://blog.csdn.net/xushiweizh/comments/2083718.aspx</wfw:comment><comments>http://blog.csdn.net/xushiweizh/archive/2008/02/04/2083718.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blog.csdn.net/xushiweizh/comments/commentRss/2083718.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2083718</trackback:ping><description>在前文（请参阅《C++内存管理变革(6)：通用型垃圾回收器 - ScopeAlloc》），我们介绍了ScopeAlloc。既然我们称之为一个通用型的GC Allocator，那么这里我们就谈谈如何用ScopeAlloc来改造STL的容器，它们包括：std::list, std::map, std::set, std::multimap, std::multiset。&lt;img src ="http://blog.csdn.net/xushiweizh/aggbug/2083718.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>许式伟</dc:creator><title>C++内存管理变革(6)：通用型垃圾回收器 - ScopeAlloc</title><link>http://blog.csdn.net/xushiweizh/archive/2008/01/22/2059828.aspx</link><pubDate>Tue, 22 Jan 2008 18:14:00 GMT</pubDate><guid>http://blog.csdn.net/xushiweizh/archive/2008/01/22/2059828.aspx</guid><wfw:comment>http://blog.csdn.net/xushiweizh/comments/2059828.aspx</wfw:comment><comments>http://blog.csdn.net/xushiweizh/archive/2008/01/22/2059828.aspx#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://blog.csdn.net/xushiweizh/comments/commentRss/2059828.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2059828</trackback:ping><description>在前文，我们引入了GC Allocator（具备垃圾回收能力的Allocator），并提供了一个实作：AutoFreeAlloc（详细内容参见《C++内存管理变革(2)：最袖珍的垃圾回收器 - AutoFreeAlloc》）。但是，如前所述，AutoFreeAlloc是有其特定的适用环境的（它对内存管理的环境进行了简化，这种简化环境是常见的。详细参阅《C++内存管理变革(3)：另类内存管理 - AutoFreeAlloc典型应用》）。那么，在AutoFreeAlloc不能适用的情形下，我们可以有什么选择？本文要讨论的，正是这样一个GC Allocator实作。它所抽象的内存管理的环境比之AutoFreeAlloc复杂许多，适用范围也广泛很多。这个GC Allocator我们称之为ScopeAlloc。&lt;img src ="http://blog.csdn.net/xushiweizh/aggbug/2059828.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>许式伟</dc:creator><title>C++内存管理变革(4)：boost::object_pool与gc allocator</title><link>http://blog.csdn.net/xushiweizh/archive/2007/04/21/1574015.aspx</link><pubDate>Sat, 21 Apr 2007 20:59:00 GMT</pubDate><guid>http://blog.csdn.net/xushiweizh/archive/2007/04/21/1574015.aspx</guid><wfw:comment>http://blog.csdn.net/xushiweizh/comments/1574015.aspx</wfw:comment><comments>http://blog.csdn.net/xushiweizh/archive/2007/04/21/1574015.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blog.csdn.net/xushiweizh/comments/commentRss/1574015.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1574015</trackback:ping><description>这篇文章拖的有点久了。NeutralEvil 在3个月之前就在催促我继续写了。只是出于WinxGui完整性的考虑，我一直在刻意优先去补充其它方面的文章，而不是让人去误会WinxGui是一个内存管理库了。:)言归正传。我们在内存池(MemPool)技术详解已经介绍了boost::pool组件。从内存管理观念的变革来看，这是是一个传统的MemPool组件，尽管也有一定的改进（但只是性能上的改进）。但boost::object_pool不同，它与我在C++内存管理变革强调的观念非常吻合。可以认为，boost::object_pool是一种不通用的gc allocator组件。&lt;img src ="http://blog.csdn.net/xushiweizh/aggbug/1574015.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>许式伟</dc:creator><title>WINX的STD_NEW与MFC共存问题</title><link>http://blog.csdn.net/xushiweizh/archive/2007/03/08/1523999.aspx</link><pubDate>Thu, 08 Mar 2007 11:20:00 GMT</pubDate><guid>http://blog.csdn.net/xushiweizh/archive/2007/03/08/1523999.aspx</guid><wfw:comment>http://blog.csdn.net/xushiweizh/comments/1523999.aspx</wfw:comment><comments>http://blog.csdn.net/xushiweizh/archive/2007/03/08/1523999.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.csdn.net/xushiweizh/comments/commentRss/1523999.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1523999</trackback:ping><description>WINX的 AutoFreeAlloc 受到了广泛的关注，很多读者反应这对他们很受启发。昨天有读者反馈了 STD_NEW 与 MFC 不能共存的问题，我在这里想谈一下这个问题。&lt;img src ="http://blog.csdn.net/xushiweizh/aggbug/1523999.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>许式伟</dc:creator><title>WINX窗口类对象的内存管理</title><link>http://blog.csdn.net/xushiweizh/archive/2007/01/11/1480597.aspx</link><pubDate>Thu, 11 Jan 2007 22:11:00 GMT</pubDate><guid>http://blog.csdn.net/xushiweizh/archive/2007/01/11/1480597.aspx</guid><wfw:comment>http://blog.csdn.net/xushiweizh/comments/1480597.aspx</wfw:comment><comments>http://blog.csdn.net/xushiweizh/archive/2007/01/11/1480597.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/xushiweizh/comments/commentRss/1480597.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1480597</trackback:ping><description>为了引入WINX窗口类对象的内存管理（生命周期模型），我绕了一大圈子。实在是，内存管理太重要了，花多少口舌介绍它都不过分。&lt;img src ="http://blog.csdn.net/xushiweizh/aggbug/1480597.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>许式伟</dc:creator><title>C++内存管理变革(3)：另类内存管理</title><link>http://blog.csdn.net/xushiweizh/archive/2007/01/10/1478590.aspx</link><pubDate>Wed, 10 Jan 2007 00:13:00 GMT</pubDate><guid>http://blog.csdn.net/xushiweizh/archive/2007/01/10/1478590.aspx</guid><wfw:comment>http://blog.csdn.net/xushiweizh/comments/1478590.aspx</wfw:comment><comments>http://blog.csdn.net/xushiweizh/archive/2007/01/10/1478590.aspx#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://blog.csdn.net/xushiweizh/comments/commentRss/1478590.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1478590</trackback:ping><description>有了AutoFreeAlloc后，C++程序员也可以象GC语言的程序员一样大胆new而不需要顾忌什么时候delete。&lt;img src ="http://blog.csdn.net/xushiweizh/aggbug/1478590.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>许式伟</dc:creator><title>Java的内存泄漏</title><link>http://blog.csdn.net/xushiweizh/archive/2006/12/21/1452326.aspx</link><pubDate>Thu, 21 Dec 2006 22:33:00 GMT</pubDate><guid>http://blog.csdn.net/xushiweizh/archive/2006/12/21/1452326.aspx</guid><wfw:comment>http://blog.csdn.net/xushiweizh/comments/1452326.aspx</wfw:comment><comments>http://blog.csdn.net/xushiweizh/archive/2006/12/21/1452326.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blog.csdn.net/xushiweizh/comments/commentRss/1452326.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1452326</trackback:ping><description>写得非常好，推荐。虽然说得是Java，但对其他gc语言如C#等，也是一样的。
Java的一个重要优点就是通过垃圾收集器(Garbage Collection，GC)自动管理内存的回收，程序员不需要通过调用函数来释放内存。因此，很多程序员认为Java不存在内存泄漏问题，或者认为即使有内存泄漏也不是程序的责任，而是GC或JVM的问题。其实，这种想法是不正确的，因为Java也存在内存泄露，但它的表现与C++不同。&lt;img src ="http://blog.csdn.net/xushiweizh/aggbug/1452326.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>许式伟</dc:creator><title>跨模块内存管理的陷阱</title><link>http://blog.csdn.net/xushiweizh/archive/2006/12/21/1452302.aspx</link><pubDate>Thu, 21 Dec 2006 22:02:00 GMT</pubDate><guid>http://blog.csdn.net/xushiweizh/archive/2006/12/21/1452302.aspx</guid><wfw:comment>http://blog.csdn.net/xushiweizh/comments/1452302.aspx</wfw:comment><comments>http://blog.csdn.net/xushiweizh/archive/2006/12/21/1452302.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blog.csdn.net/xushiweizh/comments/commentRss/1452302.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1452302</trackback:ping><description>由于编译器、编译模式的不同，不同模块的内存结构与管理程序往往并不相同。因此，如果我们在一个模块申请内存，而在另一个模块中释放，这是一个不安全的做法。&lt;img src ="http://blog.csdn.net/xushiweizh/aggbug/1452302.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>许式伟</dc:creator><title>最快速度找到内存泄漏</title><link>http://blog.csdn.net/xushiweizh/archive/2006/12/20/1451083.aspx</link><pubDate>Wed, 20 Dec 2006 22:06:00 GMT</pubDate><guid>http://blog.csdn.net/xushiweizh/archive/2006/12/20/1451083.aspx</guid><wfw:comment>http://blog.csdn.net/xushiweizh/comments/1451083.aspx</wfw:comment><comments>http://blog.csdn.net/xushiweizh/archive/2006/12/20/1451083.aspx#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://blog.csdn.net/xushiweizh/comments/commentRss/1451083.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1451083</trackback:ping><description>内存管理是C++程序员的痛。我的《内存管理变革》系列就是试图讨论更为有效的内存管理方式，以杜绝（或减少）内存泄漏，减轻C++程序员的负担。由于工作忙的缘故，这个系列目前未完，暂停。这篇短文我想换个方式，讨论一下如何以最快的速度找到内存泄漏。&lt;img src ="http://blog.csdn.net/xushiweizh/aggbug/1451083.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>许式伟</dc:creator><title>AutoFreeAlloc细节</title><link>http://blog.csdn.net/xushiweizh/archive/2006/11/30/1422872.aspx</link><pubDate>Thu, 30 Nov 2006 18:43:00 GMT</pubDate><guid>http://blog.csdn.net/xushiweizh/archive/2006/11/30/1422872.aspx</guid><wfw:comment>http://blog.csdn.net/xushiweizh/comments/1422872.aspx</wfw:comment><comments>http://blog.csdn.net/xushiweizh/archive/2006/11/30/1422872.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/xushiweizh/comments/commentRss/1422872.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1422872</trackback:ping><description>我在《C++内存管理变革：最袖珍的垃圾回收器》一文中，讨论了AutoFreeAlloc这个gc allocator。为了突出我的想法，我对忽略了一些细节的介绍。下面这一篇我觉得介绍得很好，把我没有提及的一些细节也做了介绍。&lt;img src ="http://blog.csdn.net/xushiweizh/aggbug/1422872.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>许式伟</dc:creator><title>再论C++之垃圾回收（GC）</title><link>http://blog.csdn.net/xushiweizh/archive/2006/11/24/1409598.aspx</link><pubDate>Fri, 24 Nov 2006 02:04:00 GMT</pubDate><guid>http://blog.csdn.net/xushiweizh/archive/2006/11/24/1409598.aspx</guid><wfw:comment>http://blog.csdn.net/xushiweizh/comments/1409598.aspx</wfw:comment><comments>http://blog.csdn.net/xushiweizh/archive/2006/11/24/1409598.aspx#Feedback</comments><slash:comments>23</slash:comments><wfw:commentRss>http://blog.csdn.net/xushiweizh/comments/commentRss/1409598.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1409598</trackback:ping><description>C++中GC的选择：1) 使用智能指针（smart pointers）2) 真正的垃圾回收（garbage collector）3) 支持垃圾回收的allocator（gc allocator）&lt;img src ="http://blog.csdn.net/xushiweizh/aggbug/1409598.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>许式伟</dc:creator><title>垃圾收集机制(Garbage Collection)批判</title><link>http://blog.csdn.net/xushiweizh/archive/2006/11/22/1406443.aspx</link><pubDate>Wed, 22 Nov 2006 22:19:00 GMT</pubDate><guid>http://blog.csdn.net/xushiweizh/archive/2006/11/22/1406443.aspx</guid><wfw:comment>http://blog.csdn.net/xushiweizh/comments/1406443.aspx</wfw:comment><comments>http://blog.csdn.net/xushiweizh/archive/2006/11/22/1406443.aspx#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://blog.csdn.net/xushiweizh/comments/commentRss/1406443.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1406443</trackback:ping><description>这篇短文源于comp.lang.java.programmer跟comp.lang.c++上发生的一场大辩论，支持C++和Java
的两派不同势力展开了新世纪第一场冲突，跟贴发言超过350，两派都有名角压阵。&lt;img src ="http://blog.csdn.net/xushiweizh/aggbug/1406443.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>许式伟</dc:creator><title>内存池(MemPool)技术详解</title><link>http://blog.csdn.net/xushiweizh/archive/2006/11/22/1402967.aspx</link><pubDate>Wed, 22 Nov 2006 00:44:00 GMT</pubDate><guid>http://blog.csdn.net/xushiweizh/archive/2006/11/22/1402967.aspx</guid><wfw:comment>http://blog.csdn.net/xushiweizh/comments/1402967.aspx</wfw:comment><comments>http://blog.csdn.net/xushiweizh/archive/2006/11/22/1402967.aspx#Feedback</comments><slash:comments>17</slash:comments><wfw:commentRss>http://blog.csdn.net/xushiweizh/comments/commentRss/1402967.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1402967</trackback:ping><description>内存池（MemPool）技术备受推崇。我用google搜索了下，没有找到比较详细的原理性的文章，故此补充一个。另外，补充了boost::pool组件与经典MemPool的差异。同时也描述了MemPool在sgi-stl/stlport中的运用。&lt;img src ="http://blog.csdn.net/xushiweizh/aggbug/1402967.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>许式伟</dc:creator><title>boost::pool与内存池技术</title><link>http://blog.csdn.net/xushiweizh/archive/2006/11/21/1400426.aspx</link><pubDate>Tue, 21 Nov 2006 00:38:00 GMT</pubDate><guid>http://blog.csdn.net/xushiweizh/archive/2006/11/21/1400426.aspx</guid><wfw:comment>http://blog.csdn.net/xushiweizh/comments/1400426.aspx</wfw:comment><comments>http://blog.csdn.net/xushiweizh/archive/2006/11/21/1400426.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.csdn.net/xushiweizh/comments/commentRss/1400426.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1400426</trackback:ping><description>《C++内存管理变革：最袖珍的垃圾回收器》一文我提到了MemPool技术，以及boost pool组件，这里就介绍一下它。&lt;img src ="http://blog.csdn.net/xushiweizh/aggbug/1400426.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>