当前位置: 首页 > wzjs >正文

动漫做a视频网站有哪些电子商务网络营销

动漫做a视频网站有哪些,电子商务网络营销,扬州专业做网站,做网站开发 用什么软件二、定长内存池的设计 设计一个定长的内存池,这个内存池的定长在于,当剩余空间使用完毕后,总是开辟相同长度的新空间来使用。我们会使用到一个指针来切割划分大空间为小空间。大空间是内存池向系统申请的内存大小,而小空间是程序…

二、定长内存池的设计

设计一个定长的内存池,这个内存池的定长在于,当剩余空间使用完毕后,总是开辟相同长度的新空间来使用。我们会使用到一个指针来切割划分大空间为小空间。大空间是内存池向系统申请的内存大小,而小空间是程序向该内存池申请的内存大小。由于程序向内存池申请存放空间的类型不同,这个小空间的大小也由需要存放的类型决定大小。

FixedPool1

实际上指针只有一个, _freeList 后面的空间理论上是连起来的, _freeList 在被申请空间后更新,相当于链表的头插头删。

#include <iostream>
#include <vector>
#ifdef _WIN32
#include <Windows.h>
#endif
//从堆上按页申请空间
inline static void* SystemAlloc(size_t page)
{
#ifdef _WIN32void* ptr = VirtualAlloc(0, page << 13, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
#endif
#ifdef __linux__size_t size = page << 13;void* ptr = mmap(nullptr, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);#endifif (ptr == nullptr){throw std::bad_alloc();}return ptr;
}template<class T>
class FixedPool
{T* New(){T* object = nullptr;//优先使用还回来的空间if (_freeList){void* next = *((void**)_freeList);object = (T*)_freeList;_freeList = next;}//如果大空间不足if (_restBytes < sizeof(T)){_restBytes = 128 * 1024;	//一次申请128Kb的空间_memory = (char*)SystemAlloc(_restBytes >> 13);	//128Kb右移13位相当于16页if (_memory == nullptr){throw std::bad_alloc();}}//从申请的大空间中截一块出来object = (T*)_memory;size_t objSize = sizeof(T) < sizeof(void*) ? sizeof(void*) : sizeof(T);_memory += objSize;_restBytes -= objSize;//定位new,显示调用T的构造函数new(obj)T;return obj;}void Delete(T* obj){obj->~T();*(void**)obj = _freeList;_freeList = obj;//把空间还回来}
private:char* _memory = nullptr;	//char类型为1字节大小方便申请任意大小的内存size_t _restBytes = 0;	//记录大内存在切分后的剩余比特数void* _freeList = nullptr;
};

*(void**) 的强制类型转换是在兼容 32 位和 64 位,使其不会因为指针大小不同而程序出错,也不用为了兼容 32 位和 64 位使用条件编译。

size_t objSize = sizeof(T) < sizeof(void*) ? sizeof(void*) : sizeof(T); 这行,要求开的空间必须比指针大,因为我们会用归还回来的空间存放,_freeList 来指向下一块空间,如果 T 小于指针的大小,就有可能存不进 _freeList

http://www.dtcms.com/wzjs/126747.html

相关文章:

  • 淘宝客建设网站b2b网站推广排名
  • 网站点击按钮排序电商运营主要负责什么
  • 做外贸怎么能上国外网站seo企业顾问
  • 怎么把网站整站下载百度快照怎么发布
  • java做网站的软件灰色关键词排名收录
  • googleseo是什么seo网站诊断
  • 安徽省省博物馆网站建设百度搜索广告怎么收费
  • 政府网站建设和管理办法网站建设与管理主要学什么
  • 凉山州城乡规划建设局网站百度博客收录提交入口
  • 织梦网站模版官网企业网站建设流程
  • 网站建设相关合同内容网站建设百度推广
  • 广安市国土资源局网站建设武汉seo楚天
  • 开源企业网站建设系统推广咨询服务公司
  • 汕头昨晚发现一例排名优化培训
  • 江西省住房城乡建设部网站最佳的资源磁力搜索引擎
  • 鄂州城乡建设委员会网站怎样在网上做宣传
  • 郑州电商网站设计网络优化主要做什么
  • 中国建设银行网站首页怎么销户公司域名注册查询
  • 营口网站设计360优化大师官方版
  • 企业简介 网站建设软文广告有哪些
  • 做网站赚取广告费前端开发培训机构推荐
  • 西安做行业平台网站的公司整站优化系统
  • 中国空间站组合体免费推广网站大全
  • 杭州网站建设文章seo外链平台
  • 建设文化网站的目的和意义安仁网络推广
  • c做的网站怎么制作网站
  • 手机网站图片自适应代码百度站长平台官网
  • 微信个人商城网站模板免费下载临沂今日头条新闻最新
  • 安顺网站开发泰安网络推广培训
  • 郴州网站制作公司如何建立网站平台