从引擎模式开发平台的运行机制来看,是由引擎读取参数进行解析运行的,从这个表相看,好象不如传统硬编码直接输出运行效率高。
但是从实际运行看,引擎模式并不比传统硬编码方式的运行效率低,甚至要高得多。这主要是因为如下原因。
一是体现在代码质量上。引擎模式开发平台特别注重算法,作为产品,是经过资深编程人员多年精练而来,从编码质量、算法、健壮性上,直接将引擎模式开发平台的运行效率推升到一个新高度。反观传统硬编码方式,由于项目组成员编程水平参次不齐,很难保证代码质量,运行效率低,甚至包含很多隐错(如未及时关闭数据库连接等),上线后运行越来越慢。
二是体现在资源占用上。一个大项目,传统硬编码方式,会产生大量的前后端程序(如前端js、css、html,后端jsp、java等),这么多的资源势必占用前端浏览器及后端应用服务器大量的资源,拖累运行效率。特别是传统的硬编码系统由于维护不方便,维护团队成员经常变化,很容易造成补丁加补丁的现象,牵一发而动全身,让系统运行越来越慢。而引擎模式,核心就是平台中的各类引擎,不管你开发多大的业务系统,均不再增加代码量,比如整个业务系统中的查询、统计分析全由报表引擎来完成,像我们公司产品华丹快速开发平台,就是由一个JSP页面加上后台一组报表引擎来完成的。所占用的资源显而易见不会高到哪里去。
再者,上面提到,引擎类开发平台特别注重算法,核心就是怎么提升各引擎功能及运行效率,都会对比较耗时的读取引擎参数进行缓存,这样进一步提升运行效率。
这里顺便再谈一下生成源代码类开发平台,这类开发平台大多是将目前几个开源组件组合到一块,核心点不在于提高平台自身的代码质量,算法上,而在于根据配置生成开源组件规范的源代码。生成的源代码一般都比较标准,运行效率上肯定也是比传统硬编码要高。但是生成的源代码一般都是要经过开发人员改造添加功能以适应业务需求。如果编码质量不高,也是会拖累运行效率的。还有同样也存在着大项目会产生大量的前后端程序的问题,导致占用资源过多。
再者,引擎模式开发平台,运行消耗主要在服务器端,而现在服务器硬件性能越来越高,而且集群技术的普遍应用,效率问题根本就不是事儿。而浏昴器端则是引擎模式的优势,比编码方式要轻量高效的得多。
综上所述,三种方式开发业务系统,运行效率不见得孰高孰低,与众多因素有关,有时引擎模式开发的反而运行效率更高。
最后,再拿我们公司产品华丹在线开发平台多年的实践来说,其中不乏有大客户复杂业务系统,比如国电基建MIS系统,江苏药监业务管理系统,山西税务数据分析平台、全国汽车维修技术信息监督与服务管理平台等,这些系统访问量均较高,上线前很多都是要经过权威机构进行压力安全测试,均通过,而且在运行过程中也从未有用户反馈运行效率方面的问题。
特别是从2.60版本开始,华丹快速开发平台,优化了缓存机制,并且引入预读预解析机制,每次请求无需都要从数据库读取参数进行实时解析,而是直接读取业务数据,根据预解析模板直接输出,大幅提升运行效率。
(本文未经我司许可,严禁转载,引用)