引言:
Windows是一个庞大的功能丰富的系统,并且为我们提供了强大的应用程序接口,使我们可以编写功能丰富的应用程序,但正因为Windows的复杂性和应用程序接口的强大,我们往往忽视了很多技术细节,使得写出来的程序效率较低,缺乏竞争力。
摘要:
wtl体系结构
视图
视图窗口看起来显得很简单:
class cmyview : public cwindowimpl<cmyview>{public: declare_wnd_class(null) bool pretranslatemessage(msg* pmsg) { pmsg; return false; } begin_msg_map(cmyview) messag......
摘要:
1. 在vc6.0中定义类cxmlerror的头文件中起始处有如下#include语句
#include <comdef.h>
#include <string>
class cxmlerror
{
…
}
在使用level 4编译时,报告c4100,c4511,c4512,c4663,c4245,c4018几种warning
2. 修改为......
Windows程序效率
windows是一个庞大的功能丰富的系统,并且为我们提供了强大的应用程序接口,使我们可以编写功能丰富的应用程序,但正因为windows的复杂性与应用程序接口的强大,我们往往忽视了很多技术细节,使得写出来的程序效率较低,缺乏竞争力.以下是我总结的一些提高程序效率的规则,希望对提高程序质量有帮助.
减少程序在核心态与用户态之间的切换
使用线程代替进程以减少系统资源的开销 【程序编程相关:
Prefer C++ (二)】
我们知道windows系统中的应用程序可以在两种状态下运行-用户态与核心态,但是如果进程在两种状态之间切换,则需要耗费上千个cpu周期,这对于高质量的程序来说是绝对不能容忍的.典型的例子是用户线程互斥的临界区与互斥体(mutex),互斥体是核心态对象,应用程序使用它时会切换到核心态,而临界区则直接在用户态下工作,所以如果可能,应该用临界区取代互斥体. 【推荐阅读:
谁动了我的指针?】
减少线程场景切换的开销 【扩展信息:
C++语法游戏 : 模仿C#的 usin】
在windows系统中,进程是资源非配的单位,线程是调度的单位,因为线程共享进程的地址控件,所以与创建进程相比,创建线程可以节省大量的系统资源开销.所以对于并发计算的问题,可以尽量使用线程机制来实现.
线程为应用程序提供了并发机制,使程序的多个代码段可以“同时”运行,比如使用多个线程提高费时的io操作,但是不是线程愈多越好呢?当然不是,线程虽然使用进程地址空间,但仍有自己的运行环境(堆栈.临时令牌等),线程场景的切换是要耗费cpu资源的,同一个计算过程(不涉及io操作),使用两个线程来完成比使用一个线程来完成所需要的时间实际是更多.
减少内存的跨边界(页)访问...
下一页 摘要:
摘要:内存管理向来是c/c++java/j2me/code/ target=_blank>程序设计的一块雷区,大家都不怎么愿意去碰她,但是有时不得不碰它。虽然利用c++中的smart pointer已经可以完全避免使用指针,但是对于对于指针的进一步了解,有助于我们编写出更有效率的代码,也有助于我们读懂以前编写的程序。
五大内存分区 在c++中,内存分成5个区,他们分别是堆、栈、自由存储区、......