代码改变世界

Beautiful Data Structure & Algorithms Tutorial

2011-05-11 18:42 by Robbin, 2020 阅读, 2 推荐, 收藏, 编辑
摘要:收集的标准是, 1. 翔实,能够讲清楚,说明白,不是简单的罗列 2. 准确 3. 简单,我看不懂的就不列了 不断增加 0. Book Addison Wesley Algorithms 4th Edition Robert Sedgewick最新出品,目前是我看到的最漂亮的电子书,内容对程序员来讲,... 阅读全文

试了下TBB的Atomic

2011-04-28 13:00 by Robbin, 2581 阅读, 1 推荐, 收藏, 编辑
摘要:事情十这样的,有同事想要统计某些广告的点击,在多线程下运行,可能会同时操作同一个数据项,最早使用一个全局锁,效果不好,现在改成了细粒度锁,每一个数据项一个锁,但还是希望性能更好些。 我的想法是,使用Intel TBB的Atomic,这就避免了使用锁,同时性能也会提升,不过,到底能提升多少还要用数据说... 阅读全文

Cancellation & C++ Exception

2011-04-27 17:55 by Robbin, 2684 阅读, 0 推荐, 收藏, 编辑
摘要:最近在关注Linux下的C++多线程编程,感觉是处处是地雷 我做了一些笔记,这篇是关注 pthread_cancel & c++ exception部分的。 1. Death of Thread 线程的死亡有几种原因 a. 自然死亡 - 线程完成了其执行的任务,即执行到入口函数的末尾并返回。 b.... 阅读全文

程序员可以做点什么 Part 1

2010-08-09 15:17 by Robbin, 3760 阅读, 2 推荐, 收藏, 编辑
摘要:嗯,还好继续翻译完这个系列,原文链接:http://lwn.net/Articles/255364/ 6 程序员可以做点什么 在前面的章节介绍之后,很明显程序员有很多机会来影响一个程序的性能,不管是正面的还是负面的。这里只讨论和内存相关的操作。我们会完整的讨论这些方方面面,从最底层物理内存存取和L1... 阅读全文

翻译完了<what every programmer should know about memory>的part 7!

2010-07-05 16:39 by Robbin, 3465 阅读, 4 推荐, 收藏, 编辑
摘要:翻译可真不是一件轻松的工作,Ulrich Drepper的这篇文档我个人觉得相当有难度,信息量很大,考虑到实用性就把里面的Part 7先翻译出来了,这部分主要讲解工具的使用,比其它几个章节难度相对低一些,希望能对大家有用。本周会再为每节加上些注释。 至于其它几部分,目前考虑先翻Part 6,这部分实... 阅读全文

内存性能工具:Part 5 缺页优化

2010-07-05 16:32 by Robbin, 2725 阅读, 0 推荐, 收藏, 编辑
摘要:7.5 缺页优化 像Linux这样按需分页(demand-paged)的操作系统,mmap调用只会修改页表。这就保证了,对于文件映射(file-backed)页面,页面的内部数据是可以找到的,而匿名页面,在发生存取操作时,页面会被初始化为0后才会被允许使用。mmap调用时不会有实际内存被分配出去。{... 阅读全文

内存性能工具:Part 4 改善分支预测

2010-07-02 17:22 by Robbin, 2169 阅读, 0 推荐, 收藏, 编辑
摘要:7.4 改善分支预测 在6.2.2节中,曾经提到可以通过分支预测和禁止重排序来改善L1i的效率:通过_builtin_expect的静态预测和基于剖析引导的优化(PGO)。正确的分支预测可以改善性能,不过 这里我们只关系内存使用情况的改善。 *译注:PGO(profile-guided o... 阅读全文

内存性能工具:Part 3 测量内存使用情况

2010-07-02 13:37 by Robbin, 2752 阅读, 1 推荐, 收藏, 编辑
摘要:7.3 测量内存使用情况 了解程序分配了多少内存及是在哪里分配的内存,是优化内存使用的第一步。幸运的是,已经有这样一些易于使用的工具,甚至都不需要程序重编译或者进行特殊的修改。 第一个工具,massif,它可以从编译器自动生成的调试信息中提取足够的信息。它可以提供一个程序在一段时间内累计使用内存的概... 阅读全文

内存性能工具:Part 2 模拟CPU缓存

2010-07-01 15:05 by Robbin, 2398 阅读, 1 推荐, 收藏, 编辑
摘要:7.2 模拟CPU缓存 对缓存是如何工作进行的技术描述相对易于理解,但却很难真正观察到一个实际的程序是如何受到缓存的影响。程序员对内存地址的具体值不太感兴趣,因为它们不是固定的就是相对固定的。地址是早就确定好的,部分是由链接器决定的,部分是在运行时由动态链接器和内核确定的。生成的汇编代码被要求可以... 阅读全文

内存性能工具:Part 1 内存操作调优

2010-06-30 18:09 by Robbin, 2593 阅读, 2 推荐, 收藏, 编辑
摘要:按:这是大牛Ulrich Drepper的大作中的Part 7:Memory Performance Tools的翻译,会一点点贴上来,希望能对大家有所帮助。翻译还有待雕琢,原作信息量很大,有的地方后面会再补上一些注释。另外,最新的Intel Core i7的变化没有体现在文中,有时间我会以注释方式... 阅读全文