
C++高性能服务器研究
zhuky
执着 追求
从事于嵌入式软件开发。具体产品:智能家居、数码相框、机顶盒、PMP等
展开
-
异步IO、APC、IO完成端口、线程池与高性能服务器之一 异步IO
背景:轮询 PIO DMA 中断 早期IO设备的速度与CPU相比,还不是太悬殊。CPU定时轮询一遍IO设备,看看有无处理要求,有则加以处理,完成后返回继续工作。至今,软盘驱动器还保留着这种轮询工作方式。 随着CPU性能的迅速提高,这种效率低下的工作方式浪费了大量的CPU时间。因此,中断工作方式开始成为普遍采用的技术。这种技术使得IO设备在需要得到服务时,能够产生一个硬件中断,迫使CP转载 2010-03-10 10:51:00 · 901 阅读 · 0 评论 -
异步IO、APC、IO完成端口、线程池与高性能服务器之三 IO完成端口
IO完成端口下面摘抄于MSDN《I/O Completion Ports》,smallfool翻译,原文请参考优快云文档中心文章《I/O Completion Ports》, http://dev.youkuaiyun.com/Develop/article/29%5C29240.shtm 。I/O 完成端口是一种机制,通过这个机制,应用程序在启动时会首先创建一个线程池,然后该应用程序使用线程池处理异步I/转载 2010-03-10 13:16:00 · 852 阅读 · 0 评论 -
高性能I/O设计模式Reactor和Proactor
文章主要是讲到了系统I/O方式可分为阻塞,非阻塞同步和非阻塞异步三类,三种方式中,非阻塞异步模式的扩展性和性能最好。主要是讲了两种IO多路复用模式:Reactor和Proactor,并对它们进行了比较。文章还介绍了为Reactor和Proactor模式构建一个通用的,统一的对外接口并是一个完全可移植的开发框架选择方案:TProactor (ACE compatible Proactor转载 2010-03-10 13:20:00 · 1665 阅读 · 0 评论 -
异步IO、APC、IO完成端口、线程池与高性能服务器之五 服务器的性能指标与实现高性能的途径
服务器的性能指标 作为一个网络服务器程序,性能永远是第一位的指标。性能可以这样定义:在给定的硬件条件和时间里,能够处理的任务量。能够最大限度地利用硬件性能的服务器设计才是良好的设计。 设计良好的服务器还应该考虑平均服务,对于每一个客户端,服务器应该给予每个客户端平均的服务,不能让某一个客户端长时间得不到服务而发生“饥饿”的状况。 可伸缩性,也就是说,随着硬件能力的提高,服务器的性转载 2010-03-10 13:18:00 · 1008 阅读 · 0 评论 -
理解I/O Complete Port
说明:这篇简要的说了IOCP,说清楚了IOCP的骨架。=================================================================================== 欢迎阅读此篇IOCP教程。我将先给出IOCP的定义然后给出它的实现方法,最后剖析一个Echo程序来为您拨开IOCP的谜云,除去你心中对IOCP的烦恼。OK,但我不能保证原创 2010-03-10 10:22:00 · 2310 阅读 · 0 评论 -
多线程服务器的适用场合
陈硕 (giantchen_AT_gmail) Blog.youkuaiyun.com/Solstice 2010 Feb 28这篇文章原本是前一篇博客《多线程服务器的常用编程模型》(以下简称《常用模型》)计划中的一节,今天终于写完了。“服务器开发”包罗万象,本文所指的“服务器开发”的含义请见《常用模型》一文,一句话形容是:跑在多核机器上的 Linux 用户态的没有用户界面的长期运行的网络应用转载 2010-03-10 16:19:00 · 1010 阅读 · 0 评论 -
完成端口与高性能服务器程序开发
早在两年前我就已经能很熟练的运用完成端口这种技术了,只是一直没有机会将它用在什么项目中,这段时间见到这种技术被过分炒作,过分的神秘化,就想写一篇解释它如何工作的文章.想告诉大家它没有传说中的那么高深难懂!有什么错误的地方还请高人指正.转载请注明出处及作者,谢谢!以一个文件传输服务端为例,在我的机器上它只起两个线程就可以为很多个个客户端同时提供文件下载服务,程序的性能会随机器内CPU个数的增加而转载 2010-03-10 10:42:00 · 1059 阅读 · 0 评论 -
多线程服务器的常用编程模型
多线程服务器的常用编程模型 陈硕 (giantchen_AT_gmail)Blog.youkuaiyun.com/Solstice2009 Feb 12 建议阅读本文 PDF 版下载: http://files.cppblog.com/Solstice/multithreaded_server.pdf 本文主要讲我个人在多线程开发方面的一些粗浅经验。总结了一两种常用的线程转载 2010-03-10 16:15:00 · 1208 阅读 · 0 评论 -
异步IO、APC、IO完成端口、线程池与高性能服务器之二 APC
Alertable IO(告警IO)提供了更有效的异步通知形式。ReadFileEx / WriteFileEx在发出IO请求的同时,提供一个回调函数(APC过程),当IO请求完成后,一旦线程进入可告警状态,回调函数将会执行。 以下五个函数能够使线程进入告警状态: SleepEx WaitForSingleObjectEx WaitForMultipleObjects转载 2010-03-10 13:15:00 · 949 阅读 · 0 评论 -
《多线程服务器的适用场合》例释与答疑
陈硕 (giantchen_AT_gmail) Blog.youkuaiyun.com/Solstice 2010 March 3 - rev 01《多线程服务器的适用场合》(以下简称《适用场合》)一文在博客登出之后,有热心读者提出质疑,我自己也觉得原文没有把道理说通说透,这篇文章试图用一些实例来解答读者的疑问。我本来打算修改原文,但是考虑到已经读过的读者不一定会注意到文章的变动,干脆另写一篇。为转载 2010-03-10 16:11:00 · 855 阅读 · 0 评论