分类: IT职场
2008-11-08 20:53:04
近年三月份开始的这个语音呼叫统计项目。现在已经在进行项目验收了,目前来看还是不错的,验收了9天仅仅发现了两个问题。现在简单总结一下:
这个项目主要份两部分内容:语音呼叫统计、RFC2128实现。
我主要负责的是语音呼叫统计模块,所以就只讲讲这个模块的设计,MIB的就不说了。
呼叫统计模块采用的是一种注册机制,各个语音呼叫模块通过注册接口获取后续处理句柄,进行相关的呼叫信息统计工作,我定义了一组命令字,用于统计中使用。当使用完成后,通过注销接口来释放资源,这时候统计模块将统计信息保存,为以后的呼叫历史信息使用。
总的来说思路还是比较清晰,就是为了便于MIB操作,统计链表必须是有序的,但是为了提高统计的效率,在查找的时候又不能够耗时太长,结果设计了一个数组和一个链表。链表仅仅存放排序的索引值。
这几天没事的时候看了Linux内核的代码,发现它的List非常的精妙,它是嵌入在各个数据结构中,其定义是:
struct list_head {
};
相比起来,我使用的结构很浪费内存,而且处理流程比较复杂。
不过项目已经验收了,还是无法修改了。以后有类似的项目时在修改吧。
这段时间看了不少Linux的代码,发现里面很多有用的算法,比如Hash函数、Hash链表。Radix树、红黑树等等,都非常的简洁高效,很值得学习和应用。