#include <iostream> // std::cout, std::endl
#include <cassert> // assert()
#include <ctime> // clock()
#include <vector> // std::vector
#include "MemoryPool.hpp" // MemoryPool<T>
#include "StackAlloc.hpp" // StackAlloc<T, Alloc>
// 插入元素个数
#define ELEMS 100000
// 重复次数
#define REPS 100
int main()
{
clock_t start;
// 使用 STL 默认分配器
StackAlloc<int, std::allocator<int> > stackDefault;
start = clock();
for (int j = 0; j < REPS; j++) {
assert(stackDefault.empty());
for (int i = 0; i < ELEMS; i++)
stackDefault.push(i);
for (int i = 0; i < ELEMS; i++)
stackDefault.pop();
}
std::cout << "Default Allocator Time: ";
std::cout << (((double)clock() - start) / CLOCKS_PER_SEC) << "\n\n";
// 使用内存池
StackAlloc<int, MemoryPool<int> > stackPool;
start = clock();
for (int j = 0; j < REPS; j++) {
assert(stackPool.empty());
for (int i = 0; i < ELEMS; i++)
stackPool.push(i);
for (int i = 0; i < ELEMS; i++)
stackPool.pop();
}
std::cout << "MemoryPool Allocator Time: ";
std::cout << (((double)clock() - start) / CLOCKS_PER_SEC) << "\n\n";
// 使用vector
std::vector<int> stackVector;
start = clock();
for (int j = 0; j < REPS; j++) {
assert(stackVector.empty());
for (int i = 0; i < ELEMS; i++)
stackVector.push_back(i);
for (int i = 0; i < ELEMS; i++)
stackVector.pop_back();
}
std::cout << "Vector Time: ";
std::cout << (((double)clock() - start) / CLOCKS_PER_SEC) << "\n\n";
return 0;
}

vindy_若飞呀
- 粉丝: 1
最新资源
- 综合布线技术与工程教材全套课件教学教程整本书电子教案全书教案课件.ppt
- 六套项目管理模拟题并附有讲解的项目管理复习资料-.doc
- 网络营销、推广快速入门教程以及网络营销、推广案例.pptx
- 数据通信与计算机网络7.ppt
- (源码)基于Azure IoT Plug and Play的EnOcean多传感器连接系统.zip
- 数控编程技术教案公开课一等奖优质课大赛微课获奖课件.pptx
- 上中间件安装部署手册.doc
- ios苹果商店付费热门手机App排行榜.docx
- 软件工程师-九个HTML5和JavaScript实验设计案例.docx
- 使用IBMPowerExecutive来管理服务器能耗.docx
- 第9章-嵌入式Linux软件设计.ppt
- ibm及国内it业实施ipd集成产品开发流程变革内因与成果.doc
- 智能手机硬件和网络销售人员必备二.pptx
- 公司工资管理系统程序设计报告.doc
- (完整版)《基因工程》PPT教学.ppt
- 三峡某银行网络改造总体设计方案项目策划书.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


