时空效率优化。根据科技工作者之家网站上显示的消息,程序优化是指改进程序,使之节省存储空间,提高执行效率,这个过程称为优化;优化的目标是从执行的结果程序中消除重复计算,并不包括时空效率优化。
降低用户跳出率的方法有很多,对于软件开发程序员来说,代码的优化和网络优化都是很有效的方法。今天,回龙观IT培训就从以下几个方面来了解一下,网络优化的具体 *** 作内容。
1Gzip压缩
>
可以减少流量消耗;
可以减少传输的时间。
2IP直连与>
DNS解析的失败率占联网失败中很大一种,而且次域名解析一般需要几百毫秒。针对此,我们可以不用域名,才用IP直连省去DNS解析过程,节省这部分时间。
另外熟悉阿里云的小伙伴肯定知道>
3处理
31下载
使用WebP格式;同样的照片,采用WebP格式可大幅节省流量,相对于JPG格式的,流量能节省将近25%到35%;相对于PNG格式的,流量可以节省将近80%。重要的是使用WebP之后质量也没有改变。
使用缩略图;App中需要加载的按需加载,列表中的根据需要的尺寸加载合适的缩略图即可,只有用户查看大图的时候才去加载原图。不仅节省流量,同时也能节省内存!之前使用某公司的存储服务在原图链接之后拼接宽高参数,根据参数的不同返回相应的。
32上传
(文件)的上传失败率比较高,不仅仅因为大文件,同时带宽、时延、稳定性等因素在此场景下的影响也更加明显;
避免整文件传输,采用分片传输;
根据网络类型以及传输过程中的变化动态的修改分片大小;
每个分片失败重传的机会。
备注:上传是一项看似简单、共性很多但实际上复杂、需要细分的工作。移动互联网的场景和有线的场景是有很多区别的,例如移动网络的质量/带宽经常会发生“跳变”,但有线网络却是“渐变”。
4协议层的优化
使用新的协议,>
>
>
新的版本不仅可以节省资源,同样可以减少流量;我对>
数据库访问性能优化
数据库的连接和关闭
访问数据库资源需要创建连接 打开连接和关闭连接几个 *** 作 这些过程需要多次与数据库交换信息以通过身份验证 比较耗费服务器资源 ASP NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响 系统将用户的数据库连接放在连接池中 需要时取出 关闭时收回连接 等待下一次的连接请求 连接池的大小是有限的 如果在连接池达到最大限度后仍要求创建连接 必然大大影响性能 因此 在建立数据库连接后只有在真正需要 *** 作时才打开连接 使用完毕后马上关闭 从而尽量减少数据库连接打开的时间 避免出现超出连接限制的情况
使用存储过程
存储过程是存储在服务器上的一组预编译的SQL语句 类似于DOS系统中的批处理文件 存储过程具有对数据库立即访问的功能 信息处理极为迅速 使用存储过程可以避免对命令的多次编译 在执行一次后其执行规划就驻留在高速缓存中 以后需要时只需直接调用缓存中的二进制代码即可 另外 存储过程在服务器端运行 独立于ASP NET程序 便于修改 最重要的是它可以减少数据库 *** 作语句在网络中的传输
优化查询语句
ASP NET中ADO连接消耗的资源相当大 SQL语句运行的时间越长 占用系统资源的时间也越长 因此 尽量使用优化过的SQL语句以减少执行时间 比如 不在查询语句中包含子查询语句 充分利用索引等
字符串 *** 作性能优化
使用值类型的ToString方法
在连接字符串时 经常使用 + 号直接将数字添加到字符串中 这种方法虽然简单 也可以得到正确结果 但是由于涉及到不同的数据类型 数字需要通过装箱 *** 作转化为引用类型才可以添加到字符串中 但是装箱 *** 作对性能影响较大 因为在进行这类处理时 将在托管堆中分配一个新的对象 原有的值复制到新创建的对象中 使用值类型的ToString方法可以避免装箱 *** 作 从而提高应用程序性能
运用StringBuilder类
String类对象是不可改变的 对于String对象的重新赋值在本质上是重新创建了一个String对象并将新值赋予该对象 其方法ToString对性能的提高并非很显著 在处理字符串时 最好使用StringBuilder类 其 NET 命名空间是System Text 该类并非创建新的对象 而是通过Append Remove Insert等方法直接对字符串进行 *** 作 通过ToString方法返回 *** 作结果 其定义及 *** 作语句如下所示
int num
System Text StringBuilder str = new System Text StringBuilder() //创建字符串
str Append(num ToString()) //添加数值num
Response Write(str ToString) //显示 *** 作结果
优化 Web 服务器计算机和特定应用程序的配置文件以符合您的特定需要
默认情况下 ASP NET 配置被设置成启用最广泛的功能并尽量适应最常见的方案 因此 应用程序开发人员可以根据应用程序所使用的功能 优化和更改其中的某些配置 以提高应用程序的性能 下面的列表是您应该考虑的一些选项
仅对需要的应用程序启用身份验证
默认情况下 身份验证模式为 Windows 或集成 NTLM 大多数情况下 对于需要身份验证的应用程序 最好在 nfig 文件中禁用身份验证 并在 nfig 文件中启用身份验证 根据适当的请求和响应编码设置来配置应用程序 ASP NET 默认编码格式为 UTF 如果您的应用程序为严格的 ASCII 请配置应用程序使用 ASCII 以获得稍许的性能提高
考虑对应用程序禁用 AutoEventWireup
在 nfig 文件中将 AutoEventWireup 属性设置为 false 意味着页面不将方法名与事件进行匹配和将两者挂钩(例如 Page_Load) 如果页面开发人员要使用这些事件 需要在基类中重写这些方法(例如 需要为页面加载事件重写 Page OnLoad 而不是使用 Page_Load 方法) 如果禁用 AutoEventWireup 页面将通过将事件连接留给页面作者而不是自动执行它 获得稍许的性能提升
从请求处理管线中移除不用的模块
默认情况下 服务器计算机的 nfig 文件中 节点的所有功能均保留为激活 根据应用程序所使用的功能 您可以从请求管线中移除不用的模块以获得稍许的性能提升 检查每个模块及其功能 并按您的需要自定义它 例如 如果您在应用程序中不使用会话状态和输出缓存 则可以从 列表中移除它们 以便请求在不执行其他有意义的处理时 不必执行每个模块的进入和离开代码
一定要禁用调试模式
在部署生产应用程序或进行任何性能测量之前 始终记住禁用调试模式 如果启用了调试模式 应用程序的性能可能受到非常大的影响
对于广泛依赖外部资源的应用程序 请考虑在多处理器计算机上启用网络园艺
ASP NET 进程模型帮助启用多处理器计算机上的可缩放性 将工作分发给多个进程(每个CPU一个) 并且每个进程都将处理器关系设置为其 CPU 此技术称为网络园艺 如果应用程序使用较慢的数据库服务器或调用具有外部依赖项的 对象(这里只是提及两种可能性) 则为您的应用程序启用网络园艺是有益的 但是 在决定启用网络园艺之前 您应该测试应用程序在网络园中的执行情况
只要可能 就缓存数据和页输出
ASP NET 提供了一些简单的机制 它们会在不需要为每个页请求动态计算页输出或数据时缓存这些页输出或数据 另外 通过设计要进行缓存的页和数据请求(特别是在站点中预期将有较大通讯量的区域) 可以优化这些页的性能 与 NET Framework 的任何 Web 窗体功能相比 适当地使用缓存可以更好的提高站点的性能 有时这种提高是超数量级的 使用 ASP NET 缓存机制有两点需要注意 首先 不要缓存太多项 缓存每个项均有开销 特别是在内存使用方面 不要缓存容易重新计算和很少使用的项 其次 给缓存的项分配的有效期不要太短 很快到期的项会导致缓存中不必要的周转 并且经常导致更多的代码清除和垃圾回收工作 若关心此问题 请监视与 ASP NET Applications 性能对象关联的 Cache Total Turnover Rate 性能计数器 高周转率可能说明存在问题 特别是当项在到期前被移除时 这也称作内存压力
选择适合页面或应用程序的数据查看机制
根据您选择在 Web 窗体页显示数据的方式 在便利和性能之间常常存在着重要的权衡 例如 DataGrid Web 服务器控件可能是一种显示数据的方便快捷的方法 但就性能而言它的开销常常是最大的 在某些简单的情况下 您通过生成适当的 HTML 自己呈现数据可能很有效 但是自定义和浏览器定向会很快抵销所获得的额外功效 Repeater Web 服务器控件是便利和性能的折衷 它高效 可自定义且可编程
将 SqlDataReader 类用于快速只进数据游标
SqlDataReader 类提供了一种读取从 SQL Server 数据库检索的只进数据流的方法 如果当创建 ASP NET 应用程序时出现允许您使用它的情况 则 SqlDataReader 类提供比 DataSet 类更高的性能 情况之所以这样 是因为 SqlDataReader 使用 SQL Server 的本机网络数据传输格式从数据库连接直接读取数据 另外 SqlDataReader 类实现 IEnumerable 接口 该接口也允许您将数据绑定到服务器控件 有关更多信息 请参见 SqlDataReader 类 有关 ASP NET 如何访问数据的信息 请参见通过 ASP NET 访问数据
将 SQL Server 存储过程用于数据访问
在 NET Framework 提供的所有数据访问方法中 基于 SQL Server 的数据访问是生成高性能 可缩放 Web 应用程序的推荐选择 使用托管 SQL Server 提供程序时 可通过使用编译的存储过程而不是特殊查询获得额外的性能提高
避免单线程单元 (STA) 组件
默认情况下 ASP NET 不允许任何 STA 组件在页面内运行 若要运行它们 必须在 aspx 文件内将 ASPCompat=true 属性包含在 @ Page 指令中 这样就将执行用的线程池切换到 STA 线程池 而且使 >
以上就是关于并行程序性能优化的目标不包括什么全部的内容,包括:并行程序性能优化的目标不包括什么、程序员都有哪些网络性能优化方法、.Net课堂:ASP.NET常用的优化性能方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)