2012年5月24日星期四

仰视皇天白日速

最近从零开始写一个创业项目的后台代码,十余天的功夫竟已吭哧吭哧写了上万行代码,可谓“高产”了。同时遇到的并纠结的实际技术问题还是不少,例如mysql无异步C API,NFS存放图片,HTTP服务,protobuf,缓存,关键词搜索等问题,都需要时间一一解决。 不过好在尚有“先见之明”,前年底就开始独力写了一个已用到生产项目中的arch框架,为此次项目省事不少。
这段时间也随手总结加强了几条在后台C/C++开发上的经验/教训:
1. 尽量用进程协作方式,而非多线程
2. 设计实现中,考虑对栈对象友好的方式而非堆对象
3. 异步协议,而非同步协议
4. 尽量避免对象池的应用,用优化的malloc实现代替,如tcmalloc,jemalloc等。(Boost的对象池在大量小对象(10w级)性能糟糕)
5. 通用的功能考虑拆分到独立进程中实现,其它组件通过协议/进程间调用来访问。
6. std::list的size方法不是常量时间,随list长度增加(这倒是以前没想到过的)
7. 默认的G++编译器4.0之后已经提供了部分tr1实现,如hashmap->unordered_map等。
凑足七条,算作“呜呼七歌兮悄终曲”吧。

后记:
1. 这两天读了几篇李商隐和杜诗,愈读愈发觉得积聚了不少沉郁之气。
2. 联想到当下及数月之后,竟隐有“筵席渐散”之感。

没有评论:

发表评论