C++
文章平均质量分 71
sy8111
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多处理器系统下的伪共享(false sharing)问题
1. 背景介绍 首先简单说一下计算机中处理器-内存体系结构。由于CPU速度远大于内存访问速度,现代CPU设计中都引入了缓存(cache)作为CPU和内存两者之间交流的缓冲中介。缓存的速度也介于两者之间。缓存中存放了最经常被访问的内存数据,CPU在很大程度上只需要访问高速缓存,大大提高了系统性能。系统对缓存进行读写的单位被称作缓存行(cache line)。大家知道系统对内存的操原创 2006-09-05 06:18:00 · 10995 阅读 · 2 评论 -
Intel架构CPU的CPUID指令和Visual Studio的__cpuid/__cpuidex函数
简要介绍Intel架构处理器的CPUID指令的规范,在程序中的一般作用,以及微软Visual C++中对应的__cpuid / __cpuidex函数,和我对这两个函数做的简单的类封装。原创 2010-09-15 22:36:00 · 4744 阅读 · 0 评论 -
多处理器系统下的伪共享(false sharing)问题 2 - 程序演示
原文:http://blog.youkuaiyun.com/sy8111/archive/2006/09/05/1178107.aspx下面用一个简单的小程序来验证False Sharing对性能的影响。原创 2010-09-15 20:45:00 · 1456 阅读 · 0 评论 -
如何理解C++中的动态绑定(dynamic binding)
在浏览C++论坛时,我总是能发现很多C++初学者的提问帖子,都是关于动态绑定的。基本大意就是不完全理解动态绑定该如何理解,造成一些面试或者实际编程上的困扰。本文就是针对这个问题作出的解答。作者并非技术大牛,不当之处还请大家在评论中指出,在下万分感谢。 我对于C++动态绑定的理解,一句话,就是编译器用静态分析的方法加上虚拟函数的设计实现在程序运行时动态智能执行正确虚拟函数的技术。因原创 2007-05-09 22:10:00 · 6290 阅读 · 6 评论 -
关键字Const与Volatile的使用
关键字const有什么含意? 我只要一听到被面试者说:“const意味着常数”,我就知道我正在和一个业余者打交道。去年Dan Saks已经在他的文章里完全概括了const的所有用法,因此ESP(译者:Embedded Systems Programming)的每一位读者应该非常熟悉const能做什么和不能做什么.如果你从没有读到那篇文章,只要能说出const意味着“只读”就可以转载 2006-11-15 23:07:00 · 1093 阅读 · 0 评论 -
C++中打印函数调用情况
在Java 中,如果产生异常,程序员可以很方便地调用printStackTrace()显示堆栈情况,这是因为Java虚拟机掌握所有运行时系统的信息。但是在C++中就没有相应的功能了,为了方便在调试时观察堆栈调用情况,我写了个很简单的框架来实现基本功能。 #include string>#include list>#include exception>#include iostrea原创 2006-09-09 23:56:00 · 4280 阅读 · 0 评论 -
类和接口的设计
我这篇文章的主旨是介绍一部分类和接口的高质量设计的准则。这些准则不但应该保证设计并且实现的类或者接口本身有高质量代码,而且更重要的是在工业领域应该尽可能的使代码的更新和维护不影响客户的活动,主要也就是保持二进制代码兼容(binary compatibility)和源代码兼容(source compatibility)。我希望这些准则能帮助刚从学校进入工业领域的朋友尽快适应更高标准的编程要求,尽原创 2006-09-06 23:36:00 · 1777 阅读 · 0 评论 -
C++ 变量和函数的声明和定义
有一部分C++程序员对于多个源文件一起编译链接时,变量,函数或者类声明和实现到底如何定义模糊不清,现在分类澄清一下。 变量 (variable) 在C++中,变量声明(declaration)只有在使用extern关键字时才成立,其他情况下都是定义(definition),而在使用extern的同时给变量赋初始值,则声明变为定义,extern关键字也将原创 2006-09-05 06:33:00 · 5380 阅读 · 2 评论 -
回调(Callback), 委托(Delegate), 事件(Event)
<br />本文通过认识Observer Pattern,以及对比C++,C#对这个模式的实现来理解C#中的委托(delegate)和事件(event)。<br />http://sheenspace.wordpress.com/2010/09/21/callback_functor_delegate_event/ <br /> <br />委托就是对拥有相同签名的函数/方法的类型定义;事件就是委托实例的集合,包含0个或多个委托函数实例。事件这个名字稍微有点迷惑性。他更多的表达的是这个委托集合在应用上的一般原创 2010-09-22 04:43:00 · 1520 阅读 · 0 评论
分享