;中国 COLD FUSION 用户组; WWW.CFWINDOW.COM 
您的位置 :首页 >> CF 技巧文章 >> 阅读文章内容 [ 关闭窗口 ]      

技巧文章内容 
    提高ColdFusion应用的五个步骤
文章作者 : Linkfoxo [ linkfoxo@yahoo.com ]          Web URL : http://chinacoldfusion.126.com
上载日期 : 2000-11-20

在ColdFusion3.*版本发行的时候,尽管ColdFusion 已经从AutoByTel和SmartMoney 获得了企业级电子商务应用的成功验证,但是ColdFusion的竞争对手依然时常指责该产品无法满足真正的企业级需要,他们怀疑ColdFusion Server是否真的具备良好的延展性,可以满足无限多用户并发性的访问请求。在当时,Allaire从市场的角度出发,在ColdFusion4.0版本中进一步加强了企业扩展性上的体现。其中非常重要的一点就是收购了以集群技术闻名的BrightTigher公司,并在ColdFusion4.0中集成了该公司的软件产品Cluster Cats Enterprise。那么既然有了集群技术,是不是就可以认为我们不再需要对程序进行优化了呢?当然不是,你完全有必要通过源代码的优化和调整来进一步提高应用的运行效率。

步骤一:使用数据库校验工具模拟代码的运行

ColdFusion的可视化开发工具ColdFusion Studio内置了功能强大的数据库校验工具。使用该工具可以进行可视化的模拟运行,它帮助你以最快速度找到运行速度异常的页面。如果一个页面的执行时间超过5秒钟,该页面就有可能包含错误。你是否每次都提取同样的数据?可以将查询条件保留在缓存中,提高查询的性能。

步骤二:重审CFML代码

ColdFusion的开发新手可能还无法掌握众多的CF函数,因此他们在写CFML代码时常常只是写出函数本身,而很少使用可以增加效率的方法。尽管阅读ColdFusion 函数手册全面了解一个函数的结构可能非常枯燥,但是这样的学习绝对有益。例如,将一个查询列中的值生成以逗号分隔的list时,你可以使用函数valuelist() ,这样会比使用CFLOOP写一堆连续相除的代码运行起来要快的多。

步骤三:衡量数据库

在业内到处可见糟糕的数据库设计。比如,当你用 Platinum 公司的数据库设计工具ER/Win 来设计你的数据模型时,你是否设置了参照完整性?数据库是否至少表示为一个 Third Normal Form?你需要在你的应用程序中执行一些查询语句,那么从你的数据结构中获取信息的难易程度如何?接下来,则需要将你所有的查询都转移为SQL StoredProcedures。现在,CF4.01 通过<CFSTOREDPROC>标识符支持从ORACLE返回记录集,并将参数传给 MS Access Queries。这样你可以比使用传统的SQL 语句更快的方法得到返回数据。

步骤四:衡量客户端

只要客户浏览器不需向服务器发出请求,服务器和浏览器之间的数据流量自然会大大减少,最终用户也可以在更短时间得到结果反馈。要想达到这样的效果,其代价就是启用JavaScript--客户端脚本语言,你最多会在开发和校验周期上稍稍花费一些时间。

步骤五:重审硬件配置

在源代码方面完成了优化以后,如果你希望可以承受更大的访问量,就需要重审ColdFusion的硬件及软件配置。确认应用服务器和数据库分别被部署在不同的机器上,并备有足够大的内存(最好是512MB到1GB)。为CF模板缓存配置足够的内存,这样服务器就可以将所有的应用页面缓存下来。如果你把以上建议都付诸实施却依然出现服务器延迟或请求宕机恢复,这时就该采取服务器集群策略了。

在过去的开发工作中,不断提高的性能已经导致其他平台上的一些开发人员制造出不断膨胀的、底效的代码。请一定注意不要将ClusterCats当成是扩展性以及ColdFusion应用开发中的万能药。









< 联系我们 --- 中国Cold Fusion用户组>

CFUG 国内(总部):Linkfoxo    上海:CFANS    北京:Cafe,Cyberkid,liwater    沈阳:Wangking
  
哈尔滨:Baiming    浙江:梅盛松    江西:陈末
  
CFUG (国际) Nagoya(名古屋):Codeguru    新加坡:YUZI    新西兰(Auckland):Richard CHEN
Copyright 2000-2001 www.cfwindow.com.All rights reserved

;中国 COLD FUSION 用户组; WWW.CFWINDOW.COM