编译优化
文章平均质量分 72
Adam040606
这个作者很懒,什么都没留下…
展开
-
__builtin_expect 解惑
转自:http://www.cppblog.com/mysileng/archive/2014/09/29/208454.html最近看 GLib 的代码遇到这个东东,网上搜索一圈,发现很多人都写过这个,自己今天才研究到,汗颜一下,扫盲一个点,留此记录为证! 首先看一篇最官方的讲解: ====== likely() and unlikely() What are转载 2015-11-08 21:01:53 · 444 阅读 · 0 评论 -
CPU cache 与内存对齐
转自:http://blog.csdn.net/zhang_shuai_2011/article/details/38119657一. CacheCache一般来说,需要关心以下几个方面1)Cache hierarchyCache的层次,一般有L1, L2, L3 (L是level的意思)的cache。通常来说L1,L2是集成 在CPU里面的(可以称之为On-转载 2016-02-21 22:06:22 · 780 阅读 · 0 评论 -
如何高效的访问内存
转自:http://www.lenky.info/archives/2011/11/310影响内存访问速度的因素主要有:1.内存带宽:每秒读写内存的数据量,由硬件配置决定。2.CACHE高速缓冲:CPU与内存之间的缓冲器,当命中率比较高时能大大提供内存平均访问速度。3.TLB转换旁视缓冲:系统虚拟地址向物理地址转换的高速查表机制,转换速度比普通转换机制要快。我们能够转载 2016-02-21 21:17:18 · 663 阅读 · 0 评论 -
从几个版本的memcpy的测速过程学习一点底层的东西
转自:http://blog.csdn.net/dog250/article/details/6300354以下有三个版本的memcpy,对于版本3,很多人都很熟悉,它很经典,很多人面试都写这个,可是我不得不说一句,对于类似的问题,最好的回答有两个:一是调用c库,二是使用汇编。用这一类的问题来考察应聘者的c语言能力,真的很菜!如果真的要考察c语言能力,还不如给几个if,switch-case,转载 2016-02-21 21:00:01 · 823 阅读 · 0 评论 -
利用分支预测优化代码
转自:http://blog.chinaunix.net/uid-24774106-id-2183034.htmllinux中有likely 和unlikely的宏定义 #define likely(x) __builtin_expect(!!(x),1) #define unlikely(x) __builtin_expect(转载 2015-11-01 22:48:15 · 1001 阅读 · 0 评论 -
浅谈分支预测、流水线与条件转移
转自:http://www.cnblogs.com/yangecnu/p/4196026.html一 一个问题 在StackOverflow上有这么一个问题 Why is processing a sorted array faster than an unsorted array? 。例子中,对一个数组进行条件求和,在排序前和排序后,性能有很大的差别。原始的例子转载 2015-11-03 20:20:41 · 875 阅读 · 0 评论 -
TCMalloc小记
转自:http://blog.csdn.net/chosen0ne/article/details/9338591周末抽空看了一下tcmalloc,了解了个大概。下面记录一下。一. 原理tcmalloc就是一个内存分配器,管理堆内存,主要影响malloc和free,用于降低频繁分配、释放内存造成的性能损耗,并且有效地控制内存碎片。glibc中的内存分配器是ptmalloc2,t转载 2015-11-13 09:19:39 · 526 阅读 · 0 评论 -
TCMalloc:线程缓冲的Malloc
转自:http://blog.csdn.net/chen19870707/article/details/40039401TCMalloc:线程缓冲的MallocAuthor:Echo Chen(陈斌)Email:chenb19870707@gmail.comBlog:Blog.csdn.net/chen19870707Date:Oc转载 2015-11-13 10:01:42 · 974 阅读 · 1 评论 -
CPU流水线的探秘之旅
转自:http://blog.jobbole.com/40844/作为程序员,CPU在我们的工作中扮演了核心角色,因此了解处理器内部的工作方式对程序员来说不无裨益。CPU是如何工作的呢?一条指令执行需要多长时间?当我们讨论某个新款处理器拥有12级流水线还是18级流水线,甚至是更深的31级流水线时,这到些都意味着什么呢?应用程序通常会将CPU看作是黑盒子。程序中的指令按照转载 2015-11-11 13:44:57 · 542 阅读 · 0 评论 -
c/c++性能优化--- cache优化的一点杂谈
转自:http://blog.csdn.net/wangjiaoyu250/article/details/9212863之前写了一篇关于c/c++优化的一点建议,被各种拍砖和吐槽,有赞成的有反对的,还有中立的,网友对那篇博客的的评论和吐槽,我一个都没有删掉,包括一些具有攻击性的言论。笔者有幸阅读过IBM某个项目的框架代码,和我以前看过的一些代码(包括国内某顶级电信商的代码),感觉人家转载 2015-11-10 11:37:20 · 750 阅读 · 0 评论 -
C\C++代码优化的27个建议
转自:http://blog.jobbole.com/67880/1. 记住阿姆达尔定律:funccost是函数func运行时间百分比,funcspeedup是你优化函数的运行的系数。所以,如果你优化了函数TriangleIntersect执行40%的运行时间,使它运行快了近两倍,而你的程序会运行快25%。这意味着不经常使用的代码不需要做较多优化考虑(或者完全不优化)。转载 2015-11-10 11:27:24 · 507 阅读 · 0 评论 -
性能优化tips(一)
转自:http://www.searchtb.com/2013/04/performance_optimization_tips.html(1)数据对齐是否更快?从学习数据结构的第一天起,书上就告诉我们,数据对齐可以使得访问速度更快,我心里也一直有这样一个印象,但是对其具体原因,一直不太清楚。借着最近TreeLink大赛之后大家对于性能优化痴迷的机会,我也来细细研究下这个问题。转载 2015-11-10 11:40:46 · 443 阅读 · 0 评论 -
7个示例科普CPU Cache
转自:http://blogread.cn/it/article.php?id=6558#original CPU cache一直是理解计算机体系架构的重要知识点,也是并发编程设计中的技术难点,而且相关参考资料如同过江之鲫,浩瀚繁星,阅之如临深渊,味同嚼蜡,三言两语难以入门。正好网上有人推荐了微软大牛Igor Ostrovsky一篇博文《漫游处理器缓存效应》,文章不仅仅用7个最简单的源转载 2015-11-09 14:54:18 · 560 阅读 · 0 评论 -
数组的优化循环展开与分割
转自:http://www.searchtb.com/2010/12/array-loop-optimization.html数组的循环与分割, 利用了计算机系统的两个特点:1. 有多块高速缓存;2. Cpu是可以多指令并行执行(要求多条指令之间 没有数据相关性)。在我们的例子中:数组切分: 将1个数组切分为2个数组。 这样就能用2块高速缓存来存数据 , 高速缓存的转载 2015-11-08 22:35:50 · 716 阅读 · 0 评论 -
X86-64寄存器和栈帧
转自:http://www.searchtb.com/2013/03/x86-64_register_and_function_frame.html概要说到x86-64,总不免要说说AMD的牛逼,x86-64是x86系列中集大成者,继承了向后兼容的优良传统,最早由AMD公司提出,代号AMD64;正是由于能向后兼容,AMD公司打了一场漂亮翻身战。导致Intel不得不转而生产兼转载 2015-11-08 22:34:44 · 432 阅读 · 0 评论 -
gcc选项-g与-rdynamic的异同
转自:http://www.lenky.info/archives/2013/01/2190gcc的-g,应该没有人不知道它是一个调试选项,因此在一般需要进行程序调试的场景下,我们都会加上该选项,并且根据调试工具的不同,还能直接选择更有针对性的说明,比如-ggdb。-g是一个编译选项,即在源代码编译的过程中起作用,让gcc把更多调试信息(也就包括符号信息)收集起来并将存放到最终的可执行转载 2016-11-09 11:15:34 · 2103 阅读 · 0 评论