摘要: 写服务器的代码时,为了减少内存的分配,我们很多时候需要一个池子,讲需要分配的资源先new出来,放在池子里面。这个池子的总长度(容量)应该是大部分时候是固定,表面看来,这种要求用std::list实现最简单,list可以在开始和结尾的地方增加删除。但你会发现,如果使用std::list作为池子,性能会是你很头疼的一个东西,std::list分配一个加入一个对象,或者释放一个对象,可能都会对应一次new,delete操作。如果这样的操作频繁,std::list就会成为效率的瓶颈。我的一个通讯程序,接受和发送的buffer都考虑用一个池子,而每一个链接的发送数据,也会考虑放在一个池子里面。开始我就是 阅读全文
posted @ 2010-08-10 22:11 小 楼 一 夜 听 春 雨 阅读(581) 评论(0) 推荐(0)
摘要: 1. 基类的静态数据成员存储在静态存储区;当子类继承了基类后,内存种仍然只有这一个static变量,所以不能算作是继承; 阅读全文
posted @ 2010-08-10 14:57 小 楼 一 夜 听 春 雨 阅读(334) 评论(0) 推荐(0)
摘要: BOOL PeekMessage( LPMSG lpMsg,HWND hWnd,UINT wMsgFilterMin,UINT wMsgFilterMax,UINT wRemoveMsg);当消息队列中存在消息时, PeekMessage就返回TRUE, 最后一个参数可以为:PM_REMOVEPM_NOREMOVE表示是否在接收到消息的时候从消息队列中删除它们。与GetMessage的不同:PeekMessage只要有消息的时候, 这相依返回TRUE, 即使消息是WM_QUIT, 没有消息的时候, 它不会等待,而是立即返回,并返回FALSE。而GetMessage则是从消息队列中取出消息并删除 阅读全文
posted @ 2010-08-10 09:00 小 楼 一 夜 听 春 雨 阅读(2435) 评论(0) 推荐(0)