VC6.0和BCB6.0中STL的性能比较(2) (转)

VC6.0和BCB6.0中STL的性能比较(2) (转)[@more@]

内存操作的测试

测试内容:
测试了new,delete,malloc和free。
其中:news,deletes,mallocs,frees都是做了10000次循环的结果。其他的都是单次操作的结果。

VC6.0的测试结果:
title  news  deletes  new  delete  new[]  delete[]
ticks  5050000  3800144  484  272  512  280
ms  2.7734e+000 2.0870e+000 2.6625e-004 1.4938e-004 2.8132e-004 1.5417e-004
title  mallocs  frees  malloc  free
ticks  4604936  4072944  780  252
ms  2.5332e+000 2.2406e+000 4.2908e-004 1.3840e-004

BCB6.0的测试结果:
title  news  deletes  new  delete  new[]  delete[]
ticks  2468652  932556  388  300  692  284
ms  1.3572e+00  5.1237e-01  2.1318e-04  1.6483e-04  3.8068e-04  1.5623e-04
title  mallocs  frees  malloc  free
ticks  1513416  1065864  400  228
ms  8.3206e-01  5.8634e-01  2.1992e-04  1.2527e-04


说明:1.这个结果是4次测试后的最小值集合,而不是在一次测试中完成的。
  2.BCB6.0的malloc的测试结果有个很奇怪的现象,存在两个经常出现的范围。时钟周期数一个是在400偏上的范围,还有一个在640偏上的范围(都是大于),经常出现,不明白为什么。也许和操作系统内存调度有关?

比较结果:
  BCB6.0全面胜出。唯一例外的是new[]
分析:
  以new为例。VC中,循环一万次的news平均每次的时钟数是505,比单次的要多。而BCB中,情况却相反,平均只有单次调用的64%,delete就更加突出。
  比较malloc和new可以看出,在VC中malloc并不占据多少优势,BCB中则优势明显。但是在单个的调用中,VC和BCB中的malloc都输给了new。看来认为用malloc可以提高性能的说法值得商榷,并不总是正确的。
  由于这些操作都是成对出现的,实际代码中要合并考虑。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752019/viewspace-956517/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752019/viewspace-956517/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值