mem-pool VS malloc, new
博客专区 > 0-1 的博客 > 博客详情
mem-pool VS malloc, new
0-1 发表于4年前
mem-pool VS malloc, new
  • 发表于 4年前
  • 阅读 69
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

摘要: 内存池申请的性能测试,使用boost pool,只是一个简单的场景
#define BOOST_ALL_NO_LIB
//#define BOOST_LIB_DIAGNOSTIC
#include <iostream>
#include <boost/timer.hpp>
#include <boost/pool/pool.hpp>
#include <libs/system/src/error_code.cpp>

#define BL_SIZE 4
#define TEST_COUNT 100000000

void testMemoryPool()
{
	boost::pool<> memPool(BL_SIZE);
	boost::timer t;
	for (int i = 0; i < TEST_COUNT; ++i)
	{
	char *p = new char[BL_SIZE];
	delete[] p;
	}
	std::cout << "new and delete count: " << TEST_COUNT << ". use time: " << t.elapsed() << " sec." << std::endl;

	t.restart();
	for (int i = 0; i < TEST_COUNT; ++i)
	{
	void *p = malloc(BL_SIZE);
	free(p);
	}
	std::cout << "system malloc and free count: " << TEST_COUNT << ". use time: " << t.elapsed() << " sec." << std::endl;

	t.restart();
	for (int i = 0; i < TEST_COUNT; ++i)
	{
	void *p = memPool.malloc();
	memPool.free(p);
	}
	std::cout << "mempool malloc and free count: " << TEST_COUNT << ". use time: " << t.elapsed() << " sec." << std::endl;
}

int main(void)
{
	testMemoryPool();
	return 0;
}

测试结果(Release版):

 

标签: malloc new mem pool boost
共有 人打赏支持
0-1
粉丝 92
博文 246
码字总数 145975
×
0-1
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: