当前位置: 网站首页 > 新闻中心 > SEO推广 > 正文
2016/6/17 10:51:17

网站优化公司:STL空间配置器相关知识介绍

杭州宝三信息技术有限公司行业时讯编辑日期:2016/6/17 10:51:17

  STL(Standard Template Library,标准模板库),从根本上说,STL是一些“容器”的集合,这些“容器”有list,vector,set,map等,STL也是算法和其他一些组件的集合。

  谈及组件,那么我们就首先来简单谈下STL六大组件,其相关的设计模式使用,以及各组件之间的协作关系。

  六大组件简单介绍

  空间配置器:内存池实现小块内存分配,对应到设计模式--单例模式(工具类,提供服务,一个程序只需要一个空间配置器即可),享元模式(小块内存统一由内存池进行管理)

  迭代器:迭代器模式,模板方法

  容器:STL的核心之一,其他组件围绕容器进行工作:迭代器提供访问方式,空间配置器提供容器内存分配,算法对容器中数据进行处理,仿函数伪算法提供具体的策略,类型萃取  实现对自定义类型内部类型提取。保证算法覆盖性。其中涉及到的设计模式:组合模式(树形结构),门面模式(外部接口提供),适配器模式(stack,queue通过deque适配得  到),建造者模式(不同类型树的建立过程)。

  类型萃取:基于范型编程的内部类型解析,通过typename获取。可以获取迭代器内部类型value_type,Poter,Reference等。

  仿函数:一种类似于函数指针的可回调机制,用于算法中的决策处理。涉及:策略模式,模板方法。

  适配器:STL中的stack,queue通过双端队列deque适配实现,map,set通过RB-Tree适配实现。涉及适配器模式。

  STL空间配置器产生的缘由:

  在软件开发,程序设计中,我们不免因为程序需求,使用很多的小块内存(基本类型以及小内存的自定义类型)。在程序中动态申请,释放。

  这个过程过程并不是一定能够控制好的,于是乎,

  问题1:就出现了内存碎片问题。(ps外碎片问题)

  问题2:一直在因为小块内存而进行内存申请,调用malloc,系统调用产生性能问题。

  注:内碎片:因为内存对齐/访问效率(CPU取址次数)而产生 如 用户需要3字节,实际得到4或者8字节的问题,其中的碎片是浪费掉的。

  Trace使用

  对于内存池的内部实现过程共还是比较复杂的,虽然代码量,函数比较简单。但是调用过程可能比较复杂。这时,如果我们选择debug调试,过程会相当的繁琐,需要仔细记录调用堆栈过程以及数据流向,逻辑变更等。对于楼主这种水货来说,估计完事就要苦了。

  所以,就使用Trace进行跟踪,打印数据流向,逻辑走向,文件,函数,方法,行位置。那么我们就能根据这个记录进行程序的排错以及调优了。

  杭州宝三信息技术有限公司致力于互联网产品服务和技术开发与应用,专业为企事业单位提供一站式、全方位整合网络品牌服务。主营:SEO优化推广,网站建设,SEO网站优化,企业网站优化,百度排名优化等服务,联系电话0571-81383815.

您可能还对这些文章感兴趣:
关注杭州宝三信息技术有限公司