随笔分类 -  windows

摘要:上一篇文章我详细介绍了如何开发一款高性能的TCP服务器的网络传输层.本章我将谈谈如何开发一个高性能的UDP服务器的网络层.UDP服务器的网络层开 发相对与TCP服务器来说要容易和简单的多,UDP服务器的大致流程为创建一个socket然后将其绑定到完成端口上并投递一定数量的recv操作.当有 数据到来时从完成队列中取出数据发送到接收队列中即可。 测试结果如下:WindowsXP Professional,Intel Core Duo E4600 双核2.4G , 2G内存。同时30K个用户和该UDP服务器进行交互其CPU使用率为10%左右,内存占用7M左右。 下面详细介绍该服务器的架构及流程: 阅读全文
posted @ 2013-04-03 13:35 木子你妹 阅读(2763) 评论(0) 推荐(0) 编辑
摘要:对于开发一款高性能服务器程序,广大服务器开发人员在一直为之奋斗和努力.其中一个影响服务器的重要瓶颈就是服务器的网络处理模块.如果一款服务器程序不能及时的处理用户的数据.则服务器的上层业务逻辑再高效也是徒劳.所以一个服务器程序的网络处理能力直接影响到整个服务器的性能, 本文主要介绍在windows平台下开发高性能的网络处理模块以及自己在设计开发服务器网络模块遇到的一些问题和开发心得.本篇主要介绍TCP服务器的设计, 下一篇将主要介绍UDP服务器的设计. 众所周知, 对于服务器来说windows下网络I/O处理的最佳方式就是完成端口, 因此本服务器的开发主要基于完成端口的模式.完成端口(compl 阅读全文
posted @ 2013-04-03 13:32 木子你妹 阅读(680) 评论(1) 推荐(0) 编辑
摘要:1.1线程同步概述如果没有同步对象和操作系统对特殊事件监视的能力,线程可能被迫使用有副作用的技术使自己与特殊事件同步。不使用操作系统支持的线程同步技术,会产生许多问题,比如:分配不必要的CPU时间,浪费;在高低优先级线程间,若低线程负责信号重置任务,则可能永远无法执行重置。1.2临界区1.2.1概述临界区:在所有同步对象中,临界区是最容易使用的,但它只能用于同步单个进程中的线程。临界区一次只允许一个线程取得对某个数据区的访问权。还有,在这些同步对象中,只有临界区不是内核对象,它不由操作系统的低级部件管理,而且不能使用句柄来操纵。1.在进程中创建一个临界区,即在进程中分配一个CRITICAL_S 阅读全文
posted @ 2011-11-22 09:26 木子你妹 阅读(458) 评论(0) 推荐(0) 编辑
摘要:随着拥有多个硬线程CPU(超线程、双核)的普及,多线程和异步操作等并发程序设计方法也受到了更多的关注和讨论。本文主要是想与园中各位高手一同探讨一下如何使用并发来最大化程序的性能。 多线程和异步操作的异同 多线程和异步操作两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些时候我们就认为多线程和异步操作是等同的概念。但是,多线程和异步操作还是有一些区别的。而这些区别造成了使用多线程和异步操作的时机的区别。 异步操作的本质 所有的程序最终都会由计算机硬件来执行,所以为了更好的理解异步操作的本质,我们有必要了解一下它的硬件基础。 熟悉电脑硬件的朋友肯定对DMA这个词... 阅读全文
posted @ 2011-10-22 11:23 木子你妹 阅读(376) 评论(0) 推荐(0) 编辑
摘要:char :单字节变量类型,最多表示256个字符,wchar_t :宽字节变量类型,用于表示Unicode字符,它实际定义在<string.h>里:typedef unsigned short wchar_t。为了让编译器识别Unicode字符串,必须以在前面加一个“L”,定义宽字节类型方法如下:wchar_t c = 'A';wchar_t * p = L"H... 阅读全文
posted @ 2010-11-01 14:37 木子你妹 阅读(334) 评论(0) 推荐(0) 编辑
摘要:在afxwin.h中找到一些afx_msg的解释: #ifndef afx_msg #define afx_msg // intentional placeholder #endif 没什么意思.只是定义了这个符号而已. 这个对编译器来说,相当于什么都没有,对于人来说,我们可以看到这样的符号. 对于类向导来说.这个符号才是有意义的.它是一个消息处理函数的前缀.类向导生成的消息函数,分发函数,事件响... 阅读全文
posted @ 2010-11-01 13:51 木子你妹 阅读(1307) 评论(0) 推荐(0) 编辑
摘要:一、简单的AHK脚本编写,只需打开记事本,将文件保存为**.ahk在记事本中输入如下语句!T::run, D:\run,www.google.comreturn表示按下快捷键"Alt+T",则打开D盘,并用默认浏览器打开google。^J::run, E:\Kingsoft\PowerWord PE\XDict.exe表示按下快捷键"Ctrl+J",则打开XDict.exe。Win、Ctrl、Al... 阅读全文
posted @ 2010-10-28 10:43 木子你妹 阅读(497) 评论(0) 推荐(0) 编辑
摘要:文件夹  一、当前用户专有的启动文件夹  这是许多应用软件自动启动的常用位置,Windows自动启动放入该文件夹的所有快捷方式。用户启动文件夹一般在:\Documents and Settings\<用户名字>\“开始”菜单\程序\启动,其中“<用户名字>”是当前登录的用户帐户名称。  二、对所有用户有效的启动文件夹  这是寻... 阅读全文
posted @ 2010-10-28 10:05 木子你妹 阅读(6400) 评论(0) 推荐(0) 编辑