C++
文章平均质量分 81
Adam040606
这个作者很懒,什么都没留下…
展开
-
如何编写异常安全的C++代码
转自:http://blog.csdn.net/wingfiring/article/details/660900关于C++中异常的争论何其多也,但往往是一些不合事实的误解。异常曾经是一个难以用好的语言特性,幸运的是,随着C++社区经验的积累,今天我们已经有足够的知识轻松编写异常安全的代码了,而且编写异常安全的代码一般也不会对性能造成影响。 使用异常还是返回错误码?这转载 2015-05-04 11:02:36 · 589 阅读 · 0 评论 -
Placement new的用法及用途
转自:http://www.cppblog.com/kongque/archive/2010/02/20/108093.html什么是placement new?所谓placement new就是在用户指定的内存位置上构建新的对象,这个构建过程不需要额外分配内存,只需要调用对象的构造函数即可。举例来说:class foo{};foo* pfoo = new foo;pf转载 2015-11-20 15:34:09 · 354 阅读 · 0 评论 -
unary_function跟binary_function详解
转自:http://www.myexception.cn/cpp/1994728.htmlunary_function和binary_function详解1.unary_function和binary_function介绍1.1 unary_function介绍 unary_function可以作为一个一元函数对象的基类,它只定义了参数和返回值的类型,本身并不重载()转载 2015-11-20 15:37:16 · 1030 阅读 · 0 评论 -
内存管理内幕
转自:http://www.ibm.com/developerworks/cn/linux/l-memory/动态分配的选择、折衷和实现本文将对 Linux™ 程序员可以使用的内存管理技术进行概述,虽然关注的重点是 C 语言,但同样也适用于其他语言。文中将为您提供如何管理内存的细节,然后将进一步展示如何手工管理内存,如何使用引用计数或者内存池来半手工地管理内转载 2015-11-20 09:40:07 · 450 阅读 · 0 评论 -
构建C协程之ucontext篇
转自:http://blog.csdn.net/kobejayandy/article/details/41779837原理简介所谓 “ucontext” 机制是 GNU C 库提供的一组用于创建、保存、切换用户态执行“上下文”(context)的API,可以看作是 “setjmp/long_jmp” 的“升级版”,主要包括以下四个函数:void m转载 2016-05-29 22:24:34 · 686 阅读 · 0 评论 -
协程实现的基础
转自:http://blog.csdn.net/kobejayandy/article/details/41790943协程可以认为是一种用户态的线程,与系统提供的线程不同点是,它需要主动让出CPU时间,而不是由系统进行调度,即控制权在程序员手上。既然看成是用户态线程,那必然要求程序员自己进行各个协程的调度,这样就必须提供一种机制供编写协程的人将当前协程挂起,即保存协程运行场景转载 2016-05-29 22:35:07 · 532 阅读 · 0 评论 -
Linux下HugePage内存功能配置
转自:http://blog.itpub.net/17203031/viewspace-774843/在Linux环境性能优化实践中,HugePage是一个经常提到的方法。简单的说,HugePage就是Linux内核上一种是用内存块的方法。作为传统4K Page的替代,HugePage在大部分场景下可以提升Oracle实例的运行性能效率。 本篇介绍如何进行HugePage配置和Or转载 2016-10-11 11:17:15 · 1055 阅读 · 0 评论 -
gcc选项-g与-rdynamic的异同
转自:http://www.lenky.info/archives/2013/01/2190gcc的-g,应该没有人不知道它是一个调试选项,因此在一般需要进行程序调试的场景下,我们都会加上该选项,并且根据调试工具的不同,还能直接选择更有针对性的说明,比如-ggdb。-g是一个编译选项,即在源代码编译的过程中起作用,让gcc把更多调试信息(也就包括符号信息)收集起来并将存放到最终的可执行转载 2016-11-09 11:15:34 · 2096 阅读 · 0 评论 -
Let’s Hook a Library Function
转载:http://opensourceforu.com/2011/08/lets-hook-a-library-function/If you are a developer, and want to change the way a library function works, this article will give you a basic idea of how to g转载 2016-11-25 08:46:46 · 535 阅读 · 0 评论 -
站在巨人的肩膀上,C++开源库大全
转自:http://blog.csdn.net/chen19870707/article/details/40427645程序员要站在巨人的肩膀上,C++拥有丰富的开源库,这里包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++I转载 2015-11-13 10:09:48 · 430 阅读 · 0 评论 -
non-virtual thunk for Virtual Function in multiple inheritance
转自:http://thomas-sanchez.net/computer-sciences/2011/08/15/what-every-c-programmer-should-know-the-hard-part/What every C++ programmer should know, The hard partPreviously, I explained转载 2015-11-13 16:48:17 · 719 阅读 · 0 评论 -
C++异常安全
http://www.cnblogs.com/zgfLawliet/p/3417308.html异常安全的代码是指,满足两个条件1异常中立性 :是指当你的代码(包括你调用的代码)引发异常时,这个异常 能保持原样传递到外层调用代码2.异常安全性:抛出异常后,资源不泄露,抛出异常后,不会使原有数据恶化(例如正常指针变野指针)少些try catch,因为大量的转载 2015-05-04 10:05:51 · 617 阅读 · 0 评论 -
为什么我希望用C而不是C++来实现ZeroMQ
转自:http://blog.jobbole.com/19647/开始前我要先做个澄清:这篇文章同Linus Torvalds这种死忠C程序员吐槽C++的观点是不同的。在我的整个职业生涯里我都在使用C++,而且现在C++依然是我做大多数项目时的首选编程语言。自然的,当我从2007年开始做ZeroMQ(ZeroMQ项目主页)时,我选择用C++来实现。主要的原因有以下几点:1. 包含转载 2015-06-18 14:05:47 · 515 阅读 · 0 评论 -
为什么我希望用C而不是C++来实现ZeroMQ(第二篇)
转自:http://blog.jobbole.com/26314/译注:这篇文章可能又会引起 C++ 程序员的诸多不适,就作者本文所描述的问题来看,某些“C++的问题”其实是可以有C++的解决方案的。请参阅侵入式和非侵入式容器。但是考虑到ZeroMQ是一个很底层的高性能网络库(ZeroMQ的目标是纳入Linux内核中,这也应该是改用C的一大原因,毕竟目前的ZeroMQ是用C++实现的),对转载 2015-06-18 14:23:55 · 593 阅读 · 0 评论 -
map hash_map unordered_map 性能测试
转自:http://blog.chinaunix.net/uid-20384806-id-3055333.html测试条件:gcc version 4.2.1 20070719 [FreeBSD]FreeBSD 7.2-RELEASE #0: Fri May 1 07:18:07 UTC 2009 root@driscoll.cse.buffalo.edu:/usr/ob转载 2015-08-06 15:54:32 · 372 阅读 · 0 评论 -
C语言变长数组data[0]【总结】
转自:http://www.cnblogs.com/Anker/p/3744127.html1、前言 今天在看代码中遇到一个结构中包含char data[0],第一次见到时感觉很奇怪,数组的长度怎么可以为零呢?于是上网搜索一下这样的用法的目的,发现在linux内核中,结构体中经常用到data[0]。这样设计的目的是让数组长度是可变的,根据需要进行分配。方便操作,节省空间。转载 2015-09-06 23:00:23 · 461 阅读 · 0 评论 -
C\C++代码优化的27个建议
转自:http://blog.jobbole.com/67880/1. 记住阿姆达尔定律:funccost是函数func运行时间百分比,funcspeedup是你优化函数的运行的系数。所以,如果你优化了函数TriangleIntersect执行40%的运行时间,使它运行快了近两倍,而你的程序会运行快25%。这意味着不经常使用的代码不需要做较多优化考虑(或者完全不优化)。转载 2015-11-10 11:27:24 · 506 阅读 · 0 评论 -
c/c++性能优化--- cache优化的一点杂谈
转自:http://blog.csdn.net/wangjiaoyu250/article/details/9212863之前写了一篇关于c/c++优化的一点建议,被各种拍砖和吐槽,有赞成的有反对的,还有中立的,网友对那篇博客的的评论和吐槽,我一个都没有删掉,包括一些具有攻击性的言论。笔者有幸阅读过IBM某个项目的框架代码,和我以前看过的一些代码(包括国内某顶级电信商的代码),感觉人家转载 2015-11-10 11:37:20 · 743 阅读 · 0 评论 -
性能优化tips(一)
转自:http://www.searchtb.com/2013/04/performance_optimization_tips.html(1)数据对齐是否更快?从学习数据结构的第一天起,书上就告诉我们,数据对齐可以使得访问速度更快,我心里也一直有这样一个印象,但是对其具体原因,一直不太清楚。借着最近TreeLink大赛之后大家对于性能优化痴迷的机会,我也来细细研究下这个问题。转载 2015-11-10 11:40:46 · 443 阅读 · 0 评论 -
do{...}while(0)的意义和用法
转自:http://www.spongeliu.com/415.htmllinux内核和其他一些开源的代码中,经常会遇到这样的代码:do{ ...}while(0)这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢?实际上,do{...}while(0)的作用远大于美化你的代码。查了些资料,总转载 2017-09-24 15:52:33 · 515 阅读 · 0 评论