Chinaunix首页 | 论坛 | 博客
  • 博客访问: 158830
  • 博文数量: 54
  • 博客积分: 2030
  • 博客等级: 大尉
  • 技术积分: 640
  • 用 户 组: 普通用户
  • 注册时间: 2007-04-12 23:03
文章分类

全部博文(54)

文章存档

2009年(4)

2008年(50)

我的朋友

分类: IT职场

2008-11-08 20:53:04

近年三月份开始的这个语音呼叫统计项目。现在已经在进行项目验收了,目前来看还是不错的,验收了9天仅仅发现了两个问题。现在简单总结一下:

这个项目主要份两部分内容:语音呼叫统计、RFC2128实现。

我主要负责的是语音呼叫统计模块,所以就只讲讲这个模块的设计,MIB的就不说了。

呼叫统计模块采用的是一种注册机制,各个语音呼叫模块通过注册接口获取后续处理句柄,进行相关的呼叫信息统计工作,我定义了一组命令字,用于统计中使用。当使用完成后,通过注销接口来释放资源,这时候统计模块将统计信息保存,为以后的呼叫历史信息使用。

总的来说思路还是比较清晰,就是为了便于MIB操作,统计链表必须是有序的,但是为了提高统计的效率,在查找的时候又不能够耗时太长,结果设计了一个数组和一个链表。链表仅仅存放排序的索引值。

 

这几天没事的时候看了Linux内核的代码,发现它的List非常的精妙,它是嵌入在各个数据结构中,其定义是:

struct list_head {
 struct list_head *next, *prev;
};

相比起来,我使用的结构很浪费内存,而且处理流程比较复杂。

不过项目已经验收了,还是无法修改了。以后有类似的项目时在修改吧。

这段时间看了不少Linux的代码,发现里面很多有用的算法,比如Hash函数、Hash链表。Radix树、红黑树等等,都非常的简洁高效,很值得学习和应用。

阅读(771) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~