龙之梦工作室
LOGO

技术文章


(SCI) Parallel Algorithm for Wireless Data Compression and Encryption   (SCI) Fast Algorithm of Truncated BWT for Data Compression of Sensors   Dr. Qin Jiancheng   龙之梦助力肇庆教育网云计算   Dr. Zhou Yousheng   Dr. Bai Yuan   龙之梦工作室加盟华南理工学术团队   [软件下载] ComZip超级压缩机免费版下载   继续潜行,龙之梦工作室技术研发又一年   [软件交易] “雅典娜”网页密码锁在线购买   [软件交易] Super Prime超级质数机在线购买   [软件交易] ComZip超级压缩机在线购买   [信息安全] “风语者”高强度加密技术   [信息安全] 多层纵深防御体系结构   [合著] 专利:安全事件检测方法及装置  

[原创] 统计报表程序的算法优化

[ 2007-04-09 17:07:25 ]

  引言/提要:市场部统计报表的各种综合数据指标,对制定市场策略,有针对性地开展业务所起到的指导作用,不言而喻。而现在的统计报表,早已不可能依靠人手计算,都需要借助计算机程序的自动功能。

  关键词:电信统计报表,企业计算,技术革新

  (注释:此项目获2003年度企业内部技术革新优秀奖。)

  市场部统计报表的各种综合数据指标,对制定市场策略,有针对性地开展业务所起到的指导作用,不言而喻。而现在的统计报表,早已不可能依靠人手计算,都需要借助计算机程序的自动功能。
  统计报表的程序化早已实现,但并不足够。当企业产生的数据量迅速增长,需要的统计指标越来越多,越来越细的时候,当每月统计数据的人员守着计算机,等着程序一整天都还没有出结果,被人催促得心急如焚的时候,程序算法的优化就会显得尤为重要。
  旧有的统计程序,虽然也是用效率较高的C语言,虽然直接用Alpha小型机来进行统计,但速度仍然跟不上。2002年新的统计报表格式出台后,旧程序功能上已经无法满足要求。即使在上面增加功能也不行,1个月的报表用12个小时都算不完。因此,由计算机中心全新开发了统计程序,采用优化的算法来运行。
  优化算法,说起来轻松,实际做起来却要求相当的技术水平,需要综合考虑软硬件因素和数据本身的特点。1千条数据的统计,和1千亿条数据的统计不可同日而语,如果不采用精心设计的优化算法,做起大数据量的运算来,对人和计算机都是一种折磨。
  算法的作用比计算机硬件的性能还要大,硬件性能只是按摩尔定律成倍增长,而算法的改进对速度的提高,可以是几何级以至指数级的。开发的新程序,采用了优化的算法,统计时间从12小时以上,缩短到1个小时左右,速度提高了一个数量级。
  新程序也采用C语言,运行在500MHz主频的PC机上,性能比不上小型机,但速度却有如此的提高,这就是优化算法的力量。将统计程序与小型机脱离,独立运行与PC机上,是为避免拖累主机性能,影响正常的营业和后台业务运作。算法的优化,紧扣PC机的特点。
  首先,程序不直接连接庞大的计费数据库,而是把需要的数据一次性提取出来,以文件形式保存在PC机上。这种从数据库提取记录的方式花费的时间较少,并且大量清单文件无须经过数据库存放,节省了SQL语句编译、数据库检索的时间。不要小看了这些消耗的时间,如果每条记录多消耗千分之一秒的时间,1千万条记录就要多耗掉1万秒。
  其次,程序简化了纷繁复杂的统计过程,使每个数据文件只需要扫描1次。这是提高速度的重要手段,因为需要统计的数据量庞大,以GB计,多扫描1次,需要的时间就会成倍增加。而统计报表有数百个指标,相当复杂,要在1次扫描中计算出全部结果,没有好的算法是做不到的。
  最后,程序算法配合PC机的硬件特点,充分发挥出它的性能。纯理论上的优化算法,未必能够提高速度,或者提高得不彻底。而结合了硬件特点之后,速度还能进一步翻倍。
  现代PC机的特点,一个是内存较大。内存大,就可以存放大量数据,尤其是频繁使用的数据。统计用的计算机有512M内存,容纳所有7位电话号码的用户性质,总共1千万个号码的数据,还绰绰有余,根本不需要考虑空号码占用多余的空间。因此,采用简单的线性数组访问方式,比散列法、索引法等紧缩空间式的访问,来得更直接,速度也更快。
  现代PC机的另一个特点,是CPU主频较高,流水线长。这就意味着,顺序执行的效率高,而程序分支对速度的影响相当大,因为分支跳转意味着流水线内部的指令损失。为此,程序中要尽量避免使用条件分支。
  有不少可行的方法,能代替条件分支。例如,当变量A的值只能是0或1时,可以把条件语句“若A为1则B=C,否则B=0”,直接改写成“B=C*A”。
  同样的,统计程序中每条记录的用户分类,都需要进行多重条件判断,相当耗时。而用矩阵代替了多重条件判断,直接访问矩阵来获取结果之后,这部分关键程序就变成了顺序执行,使PC机得以全速计算。
  统计报表程序的优化,对提高统计效率的效果显著,这是直接的意义。而间接的意义在于,为如何改善工作效率,提高企业效益,作出了有益的尝试。

龙之梦
2003.1.22

发表意见   相关搜索   返回主页   关闭窗口
相关文章:
  [原创] 绩效考核后台支撑系统 [2007-04-09]
  [原创] 利用计算机算法优化提高效益 [2007-04-08]
  [原创] 资源开发:电信计费内部信息网 [2007-04-08]
  [原创] 电信后台支撑系统自动监控报警装置 [2007-04-07]
  [原创] 电信内部企业网主页系统 [2007-04-07]
  [原创] 性能、代价——我的升级路 [2007-06-12]

最新留言:
  [2014-10-16]
  [2014-10-16]
  [2014-06-04]
  [2014-06-04]
  [2013-12-08]
  [2013-11-29]


从2005年3月18日起
访问本站页面计数器人次
版权所有 © 2005 龙之梦工作室,保留一切权利。
电子邮箱:master@28x28.com , co2288@126.com
相关链接 |