坚持

有一段时间没有更新博客,我并没有忘记当时开博的原则,但是发现坚持的困难,要坚持一个星期写一篇非流水帐的文章基本上很难。很多事情,只有身体力行之后,才能更好的理解困难在哪里,关键点在哪里。不管如何,要坚持一下。

想起那句话:“很多年的历史,我们才会有一点点传统,很多年的传统,我们才会有一点点的文化”。同样技术观点的整理需要时间的验证和积累,所以频率会降低,但是我会坚持。

最近看了很多技术类的博客,很多同学实际上已经不再写纯粹的技术文章,更多的是谈架构或者一些管理方面的东西。但是实际上很多的架构不能算是架构;比如采用哪个http服务器,选用了哪个数据库。我一直认同一个观点:天下难事,必做于易;天下大事,必做于细。真正有价值的宏观的设计必须要有细节的支撑。一个好的架构设计当然很重要,但是如果没有足够的深入细节,你是无法理解其中的奥秘的。很多时候,你面对的问题都是细节局部的问题,解决局部的问题需要的两个基本素质:数据结构和算法这多年来一直都没怎么变化;但是为了解决这个局部的难题,可能需要宏观的架构来匹配。还有一部分文章是写管理类的,仔细总结发现这类文章都在讲两个内容:1、如何做人?2、你应该如何做,才能让组织满意;我觉得这是比较无趣的事情。

最近看了两套源代码 ,一套是lighttpd,另外是nigx; lighttpd基本上看完了重要的部分,nigx 只看了网路io事件的处理。
这两个http服务器对网络事件的处理还是不一样,nigx采用了aio,lighttpd在linux是用了epool;实际上,你要是看过其他的open source项目的代码,如squid等;发现目前主流的c代码的风格还是非常相似的,单进程,单线程, 用c语言构造类似面向对象的语法。
关于lighttpd的部分整理:
1、单进程,单线程,支持多进程模式;默认最大连接数4096;
2、sendfile,writev的频繁使用;降低系统级的开销;
3、内存缓冲池;我发现c++程序的一个问题是使用了stl后内存的使用情况经常不可控;但是c的代码对于内存的控制就强多了;


留下反馈