| |
    一直对内存操作的速度没有数值概念,只泛泛的知道memset影响效率,反复分配释放内存影响效率,具体速度如何,从来没试过,今天试验了一下。

    写了个程序,分配一个指针数组,挨个分配内存,然后挨个释放。使用的是一台2核16g内存的虚拟机。gcc版本3.4.2

    先是分配了1w个100字节块,发现5ms以内即可完成。
    然后扩大到500字节块,速度没什么变化。

    然后分配100w个字节块,平均需要270ms左右。
    字节块扩大的2k左右,大概5s完成。
    扩大到5k左右,大概12s左右。
    以上数据均为malloc+memset数据和calloc数据,两者不相上下。

    只malloc不memset,大概能缩短20%左右,可见memset对速度还是有一定影响的,不过对于性能要求不是那么严苛的程序,设置一下提高程序稳定性也是值得的。避免某变量忘记初始化出现野值的问题。



Tags:
by snooda | 分类: c程序设计 | 评论(0) | 引用(0) | 阅读(3846)
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]