版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件开发与项目管理主讲人蒋卫祥常州信息职业技术学院软件开发与项目管理主讲人蒋卫祥任务2代码优化模块四编码能力目标学会在编码中使用代码优化知识目标理解代码优化常用技术、局部优化理解函数内的代码优化、类的代码优化、类之间的代码优化理解C#代码优化、数据库访问性能优化等知识任务2代码优化模块四编码能力目标知识目标2代码优化常用技术删除多余运算代码外提强度削弱变换循环控制条件合并已知量与复写传播删除无用赋值任务2代码优化模块四编码代码优化常用技术任务2代码优化模块四编码3删除多余运算任务2代码优化模块四编码删除多余运算任务2代码优化模块四编码4代码外提任务2代码优化模块四编码代码外提任务2代码优化模块四编码5强度削弱任务2代码优化模块四编码强度削弱任务2代码优化模块四编码6变换循环控制条件任务2代码优化模块四编码变换循环控制条件任务2代码优化模块四编码7合并已知量与复写传播任务2代码优化模块四编码合并已知量与复写传播任务2代码优化模块四编码8删除无用赋值任务2代码优化模块四编码删除无用赋值任务2代码优化模块四编码9局部优化基本块的划分基本块的变换任务2代码优化模块四编码局部优化任务2代码优化模块四编码10划分中间代码为基本块步骤求出四元式程序中各个基本块的入口语句对每一入口语句,构造其所属的基本块凡未被纳入某一基本块的语句可以把它们删除任务2代码优化模块四编码划分中间代码为基本块步骤任务2代码优化模块四编码11基本块的变换删除公共子表达式删除无用代码重新命名临时变量交换语句次序任务2代码优化模块四编码基本块的变换任务2代码优化模块四编码12函数内的代码优化去掉从来没有用到过的参数始终进行参数检验函数的参数不宜过多如果函数从来不会修改某个参数的值,则应该尽量将参数声明为const如果函数中用到的类成员变量或者其他全局变量可以用传入参数的方式代替一个单一的函数的代码量不宜过多单个函数中尽量避免相同的代码尽量保持函数只有一个出口,即只有一处return语句任务2代码优化模块四编码函数内的代码优化任务2代码优化模块四编码13类内的代码优化只有类对外的接口才声明为public在类的成员函数中如果存在着相同的代码,则将其抽取成为private的成员函数,以减少代码的冗余尽量减少成员函数之间依赖,特别是对成员变量值的依赖任务2代码优化模块四编码类内的代码优化任务2代码优化模块四编码14C#代码优化方法撤消事务值类型字符串内联任务2代码优化模块四编码C#代码优化方法任务2代码优化模块四编码15数据库访问性能优化数据库的连接和关闭使用存储过程优化查询语句使用Prepare用索引号访问代替名称索引号访问属性利用索引加快查找行的效率任务2代码优化模块四编码数据库访问性能优化任务2代码优化模块四编码16任务实施—用户数据库访问层接口实现代码
任务2代码优化模块四编码publicclassUser:IUser{//使用数据库连接池访问数据库privatestaticstringDBContionString=SqlHelper.ConnectionStringLocalTransaction;//以下为存储过程名称privateconststringUP_GET_LOGONINFO=“UP_UGetLogonInfo”;……publicUser(){}publicIList<UserLogonEntity>GetUserLogonInfo(stringuserID,stringuserPassword,stringuserIdentity){List<UserLogonEntity>userLogonInfoList=newList<UserLogonEntity>();SqlParameter[]parms=newSqlParameter[]{newSqlParameter(PARM_LOGON_USERID,SqlDbType.NVarChar,20),newSqlParameter(PARM_LOGON_USERPASSWORD,SqlDbType.NVarChar,20),newSqlParameter(PARM_LOGON_USERIDENTITYID,SqlDbType.NVarChar,1)};parms[0].Value=userID;parms[1].Value=userPassword;parms[2].Value=userIdentity;任务实施—用户数据库访问层接口实现代码任务2代码优化模块四17任务2代码优化模块四编码任务实施—用户数据库访问层接口实现代码using(SqlDataReadersdr=SqlHelper.ExecuteReader(DBContionString,CommandType.StoredProcedure,UP_GET_LOGONINFO,parms)){while(sdr.Read()){UserLogonEntityuserLogonInfo=newUserLogonEntity(sdr["OrganizeID"].ToString(),sdr["OrganizeName"].ToString(),sdr["UserID"].ToString(),sdr["UserName"].ToString(),sdr["UserLevel"].ToString());userLogonInfoList.Add(userLogonInfo);}}returnuserLogonInfoList;}
}任务2代码优化模块四编码任务实施—用户数据库访问层接口18任务实施—代码优化分析代码中使用连接池
privatestaticstringDBContionString=SqlHelper.ConnectionStringLocalTransaction;使用连接池改善打开和关闭数据库对性能的影响,提高数据库访问的效率。使用存储过程
privateconststringUP_GET_LOGONINFO=“UP_UGetLogonInfo”;
存储过程在服务器端运行,独立于ASP.NET程序,减少数据库操作语句在网络中的传输。任务2代码优化模块四编码任务实施—代码优化分析任务2代码优化模块四编码19任务实施—代码优化分析函数内代码优化
上述代码中的函数内的代码进行了优化。去掉了没有用过的参数,没有冗余,保持函数内的代码只有一个出口,即return语句。类中代码优化上述代码中类内的代码进行了优化。对外的接口声明为public,没有成员函数之间的依赖,类的成员函数中不存在相同的代码。任务2代码优化模块四编码任务实施—代码优化分析任务2代码优化模块四编码20代码优化常用技术局部优化函数内的代码优化类的代码优化C#代码优化数据库访问性能优化总结模块四编码代码优化常用技术总结模块四编码21拓展训练实施学分管理系统源代码中函数内部代码优化;实施学分管理系统源代码中类内部与类之间的代码优化;实施学分管理系统源代码中C#相关代码优化;实施学分管理系统源代码中数据库访问性能优化。任务2代码优化模块四编码拓展训练任务2代码优化模块四编码22再见再见软件开发与项目管理主讲人蒋卫祥常州信息职业技术学院软件开发与项目管理主讲人蒋卫祥任务2代码优化模块四编码能力目标学会在编码中使用代码优化知识目标理解代码优化常用技术、局部优化理解函数内的代码优化、类的代码优化、类之间的代码优化理解C#代码优化、数据库访问性能优化等知识任务2代码优化模块四编码能力目标知识目标25代码优化常用技术删除多余运算代码外提强度削弱变换循环控制条件合并已知量与复写传播删除无用赋值任务2代码优化模块四编码代码优化常用技术任务2代码优化模块四编码26删除多余运算任务2代码优化模块四编码删除多余运算任务2代码优化模块四编码27代码外提任务2代码优化模块四编码代码外提任务2代码优化模块四编码28强度削弱任务2代码优化模块四编码强度削弱任务2代码优化模块四编码29变换循环控制条件任务2代码优化模块四编码变换循环控制条件任务2代码优化模块四编码30合并已知量与复写传播任务2代码优化模块四编码合并已知量与复写传播任务2代码优化模块四编码31删除无用赋值任务2代码优化模块四编码删除无用赋值任务2代码优化模块四编码32局部优化基本块的划分基本块的变换任务2代码优化模块四编码局部优化任务2代码优化模块四编码33划分中间代码为基本块步骤求出四元式程序中各个基本块的入口语句对每一入口语句,构造其所属的基本块凡未被纳入某一基本块的语句可以把它们删除任务2代码优化模块四编码划分中间代码为基本块步骤任务2代码优化模块四编码34基本块的变换删除公共子表达式删除无用代码重新命名临时变量交换语句次序任务2代码优化模块四编码基本块的变换任务2代码优化模块四编码35函数内的代码优化去掉从来没有用到过的参数始终进行参数检验函数的参数不宜过多如果函数从来不会修改某个参数的值,则应该尽量将参数声明为const如果函数中用到的类成员变量或者其他全局变量可以用传入参数的方式代替一个单一的函数的代码量不宜过多单个函数中尽量避免相同的代码尽量保持函数只有一个出口,即只有一处return语句任务2代码优化模块四编码函数内的代码优化任务2代码优化模块四编码36类内的代码优化只有类对外的接口才声明为public在类的成员函数中如果存在着相同的代码,则将其抽取成为private的成员函数,以减少代码的冗余尽量减少成员函数之间依赖,特别是对成员变量值的依赖任务2代码优化模块四编码类内的代码优化任务2代码优化模块四编码37C#代码优化方法撤消事务值类型字符串内联任务2代码优化模块四编码C#代码优化方法任务2代码优化模块四编码38数据库访问性能优化数据库的连接和关闭使用存储过程优化查询语句使用Prepare用索引号访问代替名称索引号访问属性利用索引加快查找行的效率任务2代码优化模块四编码数据库访问性能优化任务2代码优化模块四编码39任务实施—用户数据库访问层接口实现代码
任务2代码优化模块四编码publicclassUser:IUser{//使用数据库连接池访问数据库privatestaticstringDBContionString=SqlHelper.ConnectionStringLocalTransaction;//以下为存储过程名称privateconststringUP_GET_LOGONINFO=“UP_UGetLogonInfo”;……publicUser(){}publicIList<UserLogonEntity>GetUserLogonInfo(stringuserID,stringuserPassword,stringuserIdentity){List<UserLogonEntity>userLogonInfoList=newList<UserLogonEntity>();SqlParameter[]parms=newSqlParameter[]{newSqlParameter(PARM_LOGON_USERID,SqlDbType.NVarChar,20),newSqlParameter(PARM_LOGON_USERPASSWORD,SqlDbType.NVarChar,20),newSqlParameter(PARM_LOGON_USERIDENTITYID,SqlDbType.NVarChar,1)};parms[0].Value=userID;parms[1].Value=userPassword;parms[2].Value=userIdentity;任务实施—用户数据库访问层接口实现代码任务2代码优化模块四40任务2代码优化模块四编码任务实施—用户数据库访问层接口实现代码using(SqlDataReadersdr=SqlHelper.ExecuteReader(DBContionString,CommandType.StoredProcedure,UP_GET_LOGONINFO,parms)){while(sdr.Read()){UserLogonEntityuserLogonInfo=newUserLogonEntity(sdr["OrganizeID"].ToString(),sdr["OrganizeName"].ToString(),sdr["UserID"].ToString(),sdr["UserName"].ToString(),sdr["UserLevel"].ToString());userLogonInfoList.Add(userLogonInfo);}}returnuserLogonInfoList;}
}任务2代码优化模块四编码任务实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论