软件开发的效率

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

效率软件开发中的效率软件的效率软件执行的效率。•时间•空间软件开发的效率。效率不要一味地追求程序的效率,应当在满足正确性、可靠性、健壮性、可读性等质量因素的前提下,设法提高程序的效率在优化程序的效率时,应当先找出限制效率的“瓶颈”,不要在无关紧要之处优化先优化数据结构和算法,再优化执行代码有时候时间效率和空间效率可能对立,作出适当的折衷。执行效率系统架构•软硬件环境UnixLinuxWindows•系统框架良好的数据结构•遵循范式•适当的破坏范式Selectuser.dwmcfromuserGroupID(1,2,3,4)高效的程序代码•尽量少的资源•尽量少的时间效率-大数据量DataBase•Oracle•DB2•SQLServer•MySQLOracleDB2SQLServerMySQL效率-大数据量数据库集群Cache•Oraclealtersystemsetdb_keep_cache_size=200mscope=both;altertablextwzbmstorage(buffer_poolkeep);selectSUM(BYTES)/1024/1024fromuser_extentswheresEgment_name='XTWZBM';效率-大数据量Entity•EJB2•EJB3•Hibernate•Ibatis•JDBCEJB2HibernateEJB3IbatisJDBC效率-SQLSQL大小写ORACLE采用自下而上的顺序解析SELECT子句中避免使用‘*‘用EXISTS替代INDISTINCT用UNION-ALL替换UNION尽量使用索引效率-SQL-Oracle索引函数not,,!=ISNULL和ISNOTNULL数据类型转换模糊匹配效率-SQL-OR尽可能的不使用OR•用IN来替换ORSELECT….FROMLOCATIONWHERELOC_ID=10ORLOC_ID=20ORLOC_ID=30SELECT…FROMLOCATIONWHERELOC_ININ(10,20,30);效率-SQL-OR用UNION替换OR•SELECTLOC_ID,LOC_DESC,REGIONFROMLOCATIONWHERELOC_ID=10ORREGION=“MELBOURNE”•SELECTLOC_ID,LOC_DESC,REGIONFROMLOCATIONWHERELOC_ID=10UNIONSELECTLOC_ID,LOC_DESC,REGIONFROMLOCATIONWHEREREGION=“MELBOURNE”效率-SQLORDERBY•ORDERBY中所有的列在索引中•数据库服务器的CPU效率-SQL尽量多使用COMMIT用TRUNCATE替代DELETE效率-SQL使用视图加速查询数据库分区•createtableA(id_NUMBER)partitionbyrange(id_)(partitionpart_01valueslessthan(20)tablespaceTABLESPACE1,partitionpart_02valueslessthan(60)tablespaceTABLESPACE1,partitionpart_03valueslessthan(maxvalue)tablespaceTABLESPACE1);大数据分表存储•按照年月分表•类型分表效率-分页OracleSELECT*FROM(SELECTA.*,ROWNUMROW_NUMFROM(SELECT*FROMKCCKDT)AWHEREROWNUM=10)BWHEREB.ROW_NUM=1MySQL•select*fromtalbelimit0,10效率-分页SQLServer•WITHCategoryAS(SELECTROW_NUMBER()OVER(ORDERBYCategoryIDDESC)ASRowNumber,*FROM[Category])SELECT*FROMCategoryWHERERowNumberBETWEEN1AND10效率-Tree父子结构Tree•递归•层级代码010101010101•0102010201•AJAX异步•Oracleselectt.roleid,t.roledesc,t.parentidfrombase_roletstartwithparentid=0connectbypriorroleid=parentid;效率-并发高性能的服务器、还有高性能的Web容器、高效率的编程语言•UnixLinuxWindows•WebLogicWebSphereJBossTomcat集群•服务器集群•WEB服务器集群效率-并发HTML静态化•实时静态化•增量静态化•定时静态化多媒体服务器分离•图片•视频•音乐缓存•Oscache效率-并发镜像•镜像的技术可以解决不同网络接入商和地域带来的用户访问速度差异负载均衡•硬件四层交换第四层交换使用第三层和第四层信息包的报头信息,根据应用区间识别业务流,将整个区间段的业务流分配到合适的应用服务器进行处理•软件四层交换LinuxVirtualServer效率-编程页面静态化•网站系统全站•应用系统首页缓存•应用系统首页•常用变量,内容效率-编程减少IO操作•减少控制台输出•System.out.println减少异常•当创建一个异常时,需要收集一个栈跟踪效率-编程HttpSession•除必要的用户信息等,禁止使用。效率-编程习惯String•Stringa=newString(“你好”);•Stringa=“你好”;StringBuffer•禁止使用+效率-编程习惯循环•ArrayListalist=newArrayList();•for(inti=0;ialist.size();i++){}•for(inti=0,n=alist.size();in;i++){}效率-编程习惯循环开连接•for(inti=0,n=alist.size();in;i++){Connectionconn=getConnection();…..conn.close();}效率-编程习惯Statement•for(inti=0;i5;i++){stmt.executeUpdate(insertintotest(id_,name_)values(1,2));}PreparedStatement•for(inti=0;i5;i++){pstmt.setInt(1,1);pstmt.addBatch();}pstmt.executeBatch();效率-编程习惯JSP•尽量少的JS引用•减少input类型•择正确的页面包含机制<%@includeefile=”test.jsp”%><jsp:includeepage=”test.jsp”flush=”true”/>jsp:useBeanscope=page|request|session|application效率-编程习惯request.getParameterValues•String[]chks=request.getParameterValues(chk);request.getParameter•request.getParameter(chk_1);效率-编程将页面输出进行压缩•Js压缩•gzip压缩filterdescription/descriptiondisplay-nameGZipFilter/display-namefilter-nameGZipFilter/filter-namefilter-classGZipFilter/filter-class/filterfilter-mappingfilter-nameGZipFilter/filter-nameurl-pattern/*/url-pattern/filter-mapping开发效率中国软件开发效率“世界第一”•美国9000行/年•代码量在400行/月开发效率软件开发过程•根据项目特点选择适当的开发过程•最熟悉的开发过程软件技术框架•最熟悉的框架•简单的就是最好的效率-软件开发过程瀑布式开发•需求分析、设计、编码、测试、维护迭代式开发效率-软件开发过程敏捷开发•注重概念和架构设计,而轻详细设计•业务和客户驱动,而非技术驱动•轻文档,但非无文档效率-软件开发过程做好调研和需求分析做好概要设计,保证整体框架简单可靠及时单元测试规范的代码,良好的注释IDE提高效率自动化方式提高效率及质量效率-开发Entity•EJB2•EJB3•Hibernate•Ibatis•JDBC•IbatisEJB3HibernateEJB2JDBC再见谢谢

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功