


我作为一个开发员,想法又特别的多 _-!! 居然想到自己写个 web server _-!! 汗~
有了想法当然必须做出行动
立刻到网上查找相关资料,首先从英文网站出发(国外的开源项目多,并且代码都很好),逛了一整天,终于找到一个国人写的 epoll 代码模型。因为只是个模型,根本没有任何业务处理能力,这些就得自己写了
花费2天 时间,就在这个基础模型上实现了 web server 功能。
yo2pagengine 终于面世
不到 1000 行代码,当然还有很多功能没加进去,但已经可以实现基本的 web server 服务。
我使用了 siege web 服务压力测试软件,测试了一下 yo2pagengine 的性能。在 gdb 调试进程内服务,得出的成绩是每秒处理 150 个请求。我把该结果告诉了 charles 和一个熟悉 web 系统的网友,都觉得这个成绩很棒咯。呵呵,但这个数据只是我在 debug 模式测试出来的,真正的业务处理能力在下面:
$:siege -c 300 -r 100 -f oneoo.com.url (包含350个URL)
Transactions: 30000 hits
Availability: 100.00 %
Elapsed time: 83.53 secs
Data transferred: 217.47 MB
Response time: 0.07 secs
Transaction rate: 359.15 trans/sec
Throughput: 2.60 MB/sec
Concurrency: 25.49
Successful transactions: 30000
Failed transactions: 0
Longest transaction: 13.77
Shortest transaction: 0.00
处理能力达到每秒处理 360 个请求 !哇~这个成绩是在我自己的电脑上测试的,web server 和 siege 都开在同一个电脑上,还有 linux 效率比较低的 X (在我的电脑上,Vista 运行起来比它流畅多了,很不解,怎么人人都说它性能好)如果是在真正的服务器上使用,肯定不只这个成绩 ![]()
下面才是本文主要部分:
其实我也不熟悉C语言,只能算入门。但还是顺利实现了自己的需要的功能 ![]()
这么多的编程语言,人是不可能全都熟悉的,问题是人的思维是否灵活。
不要担心前路是否平坦,只有踏出了第一步,你才真正知道这条路的好坏,遇到什么问题,尽努力逐一解决,方可实现自己的目标。但如果你连第一步都无法踏出去,你连成功的机会都没了。