STL 之 VS版本 与 gunc版本 对比效率

还记得上一篇我们跟踪了new这个操作符,这个是在VS上操作的,但是也发现了一些问题,似乎VS上的一些设计没有那么高效,只是实现了那些功能。
比如下面这段代码:

DWORD dwbegin = GetTickCount();
    for(int i = 0; i < 1000000; ++i)
    {
        tmp.push_back(i);
    }
    DWORD dwend = GetTickCount();

VS版本运行情况:

这个是运行过很多次以后的一个比较居中的结果。

再看看QT的版本 (用的MingW版本)

这个是多次运行后取得一个均值

对比可见,相同的代码,gunc的实现效率确实要比VS高出很多,很多比较好的适配器貌似也只在gunc上存在。看来一些要求效率的服务端程序部署在linux上不是没有原因的。

原文地址:https://blog.51cto.com/11753138/2446894

时间: 2024-10-28 11:05:46

STL 之 VS版本 与 gunc版本 对比效率的相关文章

STL源码剖析---根据最新版本的g++4.9.0(支持C++11)的修订(1)空间配置器

源码剖析采用的G++版本为2.91.57版本,是比较老的版本与最新版本4.9.0有某些方面的差别.现在我针对最新版本做一个分析.我下载了最新的gcc-4.9.0的包作为观察对象: 我们#include <>时的头文件放在:gcc-4.9.0/libstdc++-v3/include/std:例如vector. 真正的实现文件放在:gcc-4.9.0/libstdc++-v3/include/bits:例如:stl_vector,注意前面的stl_. 最后要说的是:技术是不断进步,不断发展变化的

5.0助手函数及与3.2版本的单字母函数对比

5.0助手函数 助手函数 描述 abort 中断执行并发送HTTP状态码 action 调用控制器类的操作 cache 缓存管理 config 获取和设置配置参数 controller 实例化控制器 cookie Cookie管理 db 实例化数据库类 debug 调试时间和内存占用 dump 浏览器友好的变量输出 exception 抛出异常处理 halt 变量调试输出并中断执行 import 导入所需的类库 input 获取输入数据 支持默认值和过滤 json JSON数据输出 jsonp

GLSL版本的区别和对比

之前尝试将一个GLSL version 110的版本写成GLSL version 330的,在此将学习过程和收获记录下来. 参考链接 GLSL Versions 介绍 你可以使用#version命令作为着色器的第一行来指定GLSL版本: #version 120 void main() { gl_FragColor = vec4(1.0); } GLSL版本与GL版本一起发布. 请参阅以下图表以确定要定位的版本. GLSL版本 OpenGL 版本 GLSL 版本 2.0 110 2.1 120

CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本)

CMD命令 CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本.文件系统版本) appwiz.cpl:程序和功能 calc:启动计算器 certmgr.msc:证书管理实用程序 charmap:启动字符映射表 chkdsk.exe:Chkdsk磁盘检查(管理员身份运行命令提示符) cleanmgr: 打开磁盘清理工具 cliconfg:SQL SERVER 客户端网络实用工具 cmstp:连接管理器配置文件安装程序 cmd.exe:CMD命令提示符 自动关机命令

Android 开源项目android-open-project工具库解析之(二) 高版本向低版本兼容,多媒体相关,事件总线(订阅者模式),传感器,安全,插件化,文件

六.Android 高版本向低版本兼容 ActionBarSherlock 为Android所有版本提供统一的ActionBar,解决4.0以下ActionBar的适配问题 项目地址:https://github.com/JakeWharton/ActionBarSherlock Demo地址:https://play.google.com/store/apps/details?id=com.actionbarsherlock.sample.demos APP示例:太多了..现在连google都

git基础①创建版本库和版本回退

集中式版本控制系统:版本是集中存放在中央服务器的,做项目的时候要先从中央服务器里面取得最新版本,做完项目然后在推送上传到中央服务器进行储存.缺点是没有网络或者是网速不够快,上传和下载文件要很长时间,不方便也不安全. 分布式版本控制系统:在自己电脑上创建一个本地版本库,修改,上传在本地进行就可以,方便快捷,2人协作,可以直接相互推送给对方,就可以看到各自的修改,多人协作 通常也建立个一个中央服务器,但是这个服务器的作用仅仅是用来方便大家的修改,没有也可以一样的工作,只是没有那么方便而已 安装git

GBK版本和UTF-8版本的区别

GBK版本与UTF-8版本功能是一样的.只不过编码方式不同.UTF-8比较“国际化”吧. GBK的文字编码是双字节来表示的,即不论中.英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1.至于UTF-8编码则是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码.对于英文字符较多的网站则用UTF-8节省空间.UTF8编码的优点:优点1:外国人的英文IE上也能显示中文,无需下载IE的中文语言支持包.香港台湾无需安装简体中文支持就能正常观看

数据库低版本附加高版本的问题

我的机房收费系统是在自己笔记本上敲的,敲完了以后把本上数据库拷了出来,放到台式机上,准备通过台式机来验收系统.当我附加数据库的时候,提示 "数据库'charge_sys'的版本为661,无法打开.此服务器支持655版及更低版本.不支持降级路径." 这是因为我本上的SQL是2008R2版的,而机房的电脑上的数据库是2008版的(当然,2008版以下的也会出现这种情况).暂时我知道的解决方法只有 两种: 一.就是把低版本电脑的SQL升级,升到高版本就可以了.但这样不仅浪费时间,而且很麻烦.

nodejs高版本转低版本

需要安装 第一步: npm install --save-dev babel-register npm install --save-dev babel-polyfill //由于只安装babel-register,无法解决低版本问题所以需要这个 npm install --save-dev babel-preset-latest //高版本到低版本js的一条路需要指定babelrc 最后需要创建文件: .babelrc//无扩展名 { "presets": ["latest