动态内存申请问题!!!
有如下疑问:
用for循环,循环200次去申请200个动态内存,假设总共8m大小
与直接一次申请8m的动态内存
他们的性能相差大吗?
如何用测试这个性能?
谢谢各位。
[解决办法]
大。
CPU有Cache针对紧邻的内存块。
[解决办法]
c++ 的new可能使用了内存池, 如果使用了内存池的话, 则性能差别不大, 否则每次都要从操作系统申请动态内存, 性能差别就很大。 测试性能的话 测试的衡量标准应该是时间花费。 你可以计时来比较性能
[解决办法]
另外就是多次申请容易导致出现更多的内存碎片, 关于内存碎片可以进一步去了解