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

网站seo诊断评分63西安百度关键词优化

网站seo诊断评分63,西安百度关键词优化,4500急招一位接送小孩阿姨附近,网站虚拟主机销售首先明确一点&#xff0c;绝大多数情况下&#xff0c;是标准库中的容器使用allocator。因为容器需要频繁的申请和释放内存。 一、容器使用allocator 典型的例子&#xff1a; vector<int , allocator<int>> a;但是为什么我们通常的定义vector变量的方法是&#x…

首先明确一点,绝大多数情况下,是标准库中的容器使用allocator。因为容器需要频繁的申请和释放内存。

一、容器使用allocator

典型的例子:

vector<int , allocator<int>> a;

但是为什么我们通常的定义vector变量的方法是:

vector<int> a;

这就要看看stl里面vector的定义了:

template<typename _Tp, typename _Alloc = std::allocator<_Tp> >class vector : protected _Vector_base<_Tp, _Alloc>

显然,第二个参数是默认参数。如果我们什么也不输入,则会传入一个实例化的类模板allocator。实例化的类型与容器元素类型一致。如果你故意传入一个类型不一致的allocator,编译可以通过,但是这种做法等于搬起石头砸自己的脚。

二、为什么容器需要allocator?

容器在初始化、扩容、新增元素等情况下需要申请内存,删除元素需要释放内存。allocator可以帮助我们做这个事情。这就有一个问题,为什么 不直接用malloc和free函数?
其实,VC和BC版本的编译器,allocator就是malloc和free套了个壳子,加入了一些日志,增加了一些错误处理而已。但是存在两个问题:(1)多次malloc有cookie浪费;(2)频繁malloc和free比较耗时。
在GC版本的编译器情况大不一样了。G4.9版本的编译器加入了内存池的思想,可以有效解决上面的两个问题。
在侯捷老师的课中,有这么一句话:“频繁的malloc和free会产生大量的cookie浪费,如果你有100万个元素,就会浪费100万个cookie。”这句话其实不太严谨。当然侯捷老师举的例子是list,list如果想放置100万个元素,自然要申请100万个空间,在VC版本的分配器之下自然产生100万个cookie。但是如果是vector,情况就不一样了,可能一次就malloc了100万的空间,cookie就只有一个。

三、VC、BC版本的分配器

没什么好说的,就是套了个malloc和free。
比如说

vector<int> a(100);

那么在初始化的时候,会调用malloc函数,申请一块4*100字节的内存。

四、G4.9版本的分配器

分为两级分配器:
(1)一级分配器,就是原装的malloc和free。没什么好说的。当申请内存的大小超过128字节的时候,调用一级分配器。

(2)二级分配器,利用了线程池的思想,适合分配小块内存。
结构如下:
在这里插入图片描述
是一个长度为16的指针数组,下拉链表。每个链表都是一个freelist,就是内存池。关于freelist和内存池的概念,可以参考前三篇博客。
长度16是为了适配不同的内存大小。内存块大小都是8的倍数,从8到128。
假如要申请一块大小是6字节的内存,那么上取8的倍数,取8字节。到数组第一位找内存块。
申请内存的步骤为:
(1)申请内存大小上取8的倍数,找到对应的freeList拿内存块。
(2)如果freeList已经满了,或者之前没申请过。那么malloc大块内存,按照这个位置上的内存大小切片,拉链表(使用嵌入式指针)。
释放步骤参考前三篇博客。

有个注意点:
一个进程中,只有一个二级分配器数据对象。因为数据结构、分配函数都是静态的。所以在这个进程中,vector和list,用的都是这一个分配器数据对象。

http://www.15wanjia.com/news/57346.html

相关文章:

  • 做ppt介绍网站吗怎么开发网站
  • 成都微网站建设什么优化
  • python做的网站哪些义乌最好的电商培训学校
  • 招聘企业网站建设模块怎么查搜索关键词排名
  • 创新的沈阳网站建设fifa世界排名最新
  • 垂直网站导航是谁做的淘宝关键词优化工具
  • 阿里云网络服务seo快速优化报价
  • dhl做单网站产品网络推广深圳
  • 我谁知道在哪里可以找人帮忙做网站海南seo
  • 昆山市住房和建设局网站班级优化大师app下载学生版
  • 网站图片加载优化优化公司网站排名
  • wordpress官网视频教程搜索引擎优化服务
  • 网站建设概念合肥seo按天收费
  • 旅游业网站建设方案特点网络营销应用方式
  • 做网站代运营如何寻找客户站点推广是什么意思
  • wordpress 首页 修改北京seo收费
  • 苏州做网站的专业公司福州网站seo
  • 网站权限视频推广方案模板
  • 512m内存做网站网站域名查询
  • 郑州建网站十大google搜索免费入口
  • 商城站企业网站制作步骤
  • 廊坊安次区网站建设公司成都seo
  • wordpress通知邮件美化南宁seo费用服务
  • 网站域名使用怎么做分录百度一下 你知道首页
  • 网站哪家公司做得好seo网络排名优化技巧
  • wordpress绑定手机号广告优化师发展前景
  • 杭州网站建设提供商电话号码宣传广告
  • 服务器如何做网站网站关键词如何快速上首页
  • 深圳最新招聘seo排名查询
  • b2c模式的电商网站最新国际新闻50条简短