摘要: Here, I just note about how to use AQTime to find the bottleneck of a dll module. Steps: 1. Create a new project. Set "Host Application", which is the execution module to load your dll. N... 阅读全文
posted @ 2007-10-29 19:18 能巴 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 用Mock Object进行独立单元测试(Testing in isolation with mock objects) 独立测试就是单独测试一个类或方法里的代码,而不测试里面调用的其他类或方法的代码。即假定调用的其他类或方法都正常执行。 使用Mock Object的场合 实际对象的行为还不确定。 实际的对象创建和初始化非常复杂。 实际对象中存在很难执行到的行为(如网络... 阅读全文
posted @ 2007-10-29 16:41 能巴 阅读(742) 评论(0) 推荐(0) 编辑
摘要: Reflection Part 1: Discovery and Execution What Is Reflection? Reflection is a means of discovering information about objects at runtime. This information can be used to execute methods and retrieve ... 阅读全文
posted @ 2007-10-27 20:05 能巴 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如 Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经比较成... 阅读全文
posted @ 2007-10-27 00:00 能巴 阅读(29466) 评论(2) 推荐(6) 编辑
摘要: 注: 以下内容部分引自CSND中相关讨论的帖子,并结合自己的理解整理而成。仅供参考。 0)在Windows平台下,C Runtime Library 的情况如下: 动态连接库 导出库文件 静态连接库 Release msvcrt.dll msvcrt.lib... 阅读全文
posted @ 2007-10-10 19:46 能巴 阅读(714) 评论(0) 推荐(0) 编辑
摘要: 1. Rename feacp.dll to disable intellisense. You will find this file in Program files: ...."Microsoft Visual Studio 8"VC"vcpackages folder. 2. If you are still experiencing slowdowns due to .ncb fil... 阅读全文
posted @ 2007-10-10 19:12 能巴 阅读(289) 评论(0) 推荐(0) 编辑
摘要: Part1: 1. 如何解决Visual C++ 6.0不正确连接的问题 情景:明明改动了一个文件,却要把整个项目全部重新编译链接一次。刚刚链接好,一运行,又提示重新编译链接一次。 这是因为出现了未来文件(修改时间和创建时间比系统时间晚)的缘故。可以这样处理:找到工程文件夹下的debug目录,将创建和修改时间都比系统时间的文件全部删除,然后再从新“Rebuild All”一次。 2. 引起LN... 阅读全文
posted @ 2007-10-08 23:37 能巴 阅读(787) 评论(0) 推荐(0) 编辑
摘要: 栈对象的优势是在适当的时候自动生成,又在适当的时候自动销毁,不需要程序员操心;而且栈对象的创建速度一般较堆对象快,因为分配堆对象时,会调用operator new操作,operator new会采用某种内存空间搜索算法,而该搜索过程可能是很费时间的,产生栈对象则没有这么麻烦,它仅仅需要移动栈顶指针就可以了。但是要注意的是,通常栈空间容量比较小,一般是1MB~2MB,所以体积比较大的对象不适合在... 阅读全文
posted @ 2007-10-08 22:35 能巴 阅读(3249) 评论(0) 推荐(1) 编辑
摘要: 禁止产生堆对象 上面已经提到,你决定禁止产生某种类型的堆对象,这时你可以自己创建一个资源封装类,该类对象只能在栈中产生,这样就能在异常的情况下自动释放封装的资源。 那么怎样禁止产生堆对象了?我们已经知道,产生堆对象的唯一方法是使用new操作,如果我们禁止使用new不就行了么。再进一步,new操作执行时会调用operator new,而operator new是可以重载的。方法有了... 阅读全文
posted @ 2007-10-08 22:23 能巴 阅读(625) 评论(0) 推荐(0) 编辑
摘要: 站在汇编语言的角度,一个程序分为: 数据段 -- DS 堆栈段 -- SS 代码段 -- CS 扩展段 -- ES 站在高级语言的角度,根据APUE,一个程序分为如下段: text data (initialized) bss stack heap 代码段 -- text text段在内存中被映射为只读,但.data和.bss是可写的。 text段是程序代码段,在AT91库中是表示程序段的大小,它... 阅读全文
posted @ 2007-10-08 22:17 能巴 阅读(1096) 评论(0) 推荐(0) 编辑