<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Snooda]]></title> 
<link>http://www.snooda.com/index</link> 
<description><![CDATA[Snooda's Blog]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Snooda]]></copyright>
<item>
<link>http://www.snooda.com/read/</link>
<title><![CDATA[malloc、calloc、memset与free等内存操作的速度]]></title> 
<author>snooda &lt;admin@snooda.com&gt;</author>
<category><![CDATA[c程序设计]]></category>
<pubDate>Tue, 29 May 2012 16:55:28 +0000</pubDate> 
<guid>http://www.snooda.com/read/</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;一直对内存操作的速度没有数值概念，只泛泛的知道memset影响效率，反复分配释放内存影响效率，具体速度如何，从来没试过，今天试验了一下。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;写了个程序，分配一个指针数组，挨个分配内存，然后挨个释放。使用的是一台2核16g内存的虚拟机。gcc版本3.4.2<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;先是分配了1w个100字节块，发现5ms以内即可完成。<br/>&nbsp;&nbsp;&nbsp;&nbsp;然后扩大到500字节块，速度没什么变化。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;然后分配100w个字节块，平均需要270ms左右。<br/>&nbsp;&nbsp;&nbsp;&nbsp;字节块扩大的2k左右，大概5s完成。<br/>&nbsp;&nbsp;&nbsp;&nbsp;扩大到5k左右，大概12s左右。<br/>&nbsp;&nbsp;&nbsp;&nbsp;以上数据均为malloc+memset数据和calloc数据，两者不相上下。<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;只malloc不memset，大概能缩短20%左右，可见memset对速度还是有一定影响的，不过对于性能要求不是那么严苛的程序，设置一下提高程序稳定性也是值得的。避免某变量忘记初始化出现野值的问题。<br/><br/><br/><br/><br/>Tags - <a href="http://www.snooda.com/tags/%25E5%2586%2585%25E5%25AD%2598/" rel="tag">内存</a>
]]>
</description>
</item><item>
<link>http://www.snooda.com/read/#blogcomment</link>
<title><![CDATA[[评论] malloc、calloc、memset与free等内存操作的速度]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.snooda.com/read/#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>