zoukankan      html  css  js  c++  java
  • 性能优化之序言

    性能是可能性

    技术上很多事情,是因为性能,才成为可能性。

    因为性能才是成本的保证,只有战胜成本,才可以创造盈利。

    另外性能还是用户体验的保证,正是因为网上支付的这种速度,才保证了用户不用跑银行耽误1个小时,而放弃某些购物行为。

    关注的内容

    本文的关注内容,是性能优化

    性能优化指在特定资源的情况下,更多的完成特定的任务,在特定的资源下,可以让用户体验更加好,也就是优化吞吐量和响应时间

    •  吞吐量 特定时间完成的业务数量
    •  响应时间 完成特定任务需要的时间

    本文可能涉及到以下一些方面的内容

    • 计算机上一些资源的正确认识
    • 度量计算机资源的一些工具和方法
    • 度量计算机资源如何被应用使用的一些工具和方法
    • 如何测试完成的任务
    • 从各个方面完成性能优化任务的一些参考

    根据前面的介绍,本文会集中在处理性能优化这个事情上,那么,在这个事情上,我们有以下一些指导原则。

    首先,我们的程序是代码写的。

    性能就是关于代码的一切。

    • 程序执行所经过的指令
    • 队列等待,等待你程序处理需要的一些资源,包含但不限于cpu,磁盘,网络,内存
    • 一致性等待,等待和你交互的一些线程的结果,用于你执行你的下一步动作 

    为了优化上面说道的代码的一切,我们的最高级的原则就是 做的更少,或者做的更快.

    至于什么内容做的更少,怎么做的更快,可以先看下面关于吞吐量和响应时间和计算机资源的一些基本公式

    吞吐量和rt的一些基本公式

    • 请求响应时间=程序指令消耗cpu处理时间+等待时间(等待时间=队列等待+一致性等待)
    • 吞吐量=cpu数/程序指令消耗cpu处理时间
      • 可以把下面最佳线程数的公式代入,可以从更多维度参考
    • 最佳线程数=cpu数(请求响应时间/程序指令消耗cpu处理时间)
    • 有资源池限制的时候:吞吐量=资源池数量/每个请求占用资源的时间
      • 资源池:线程池,锁,数据库池等
      • 锁属于一个池大小为1的池

    从这些公式我们可以看到

    • 优化响应时间:从程序指令和等待时间入手
    • 优化吞吐量:从程序指令入手
    • 特别注意,不要做一些参数限制硬件资源的发挥

    另外从优化的力度上,是按照下面的这个顺序排列的

    • 业务:如果某块业务可以优化,直接不参与关键路径,当然是最好的方法
    • 基础技术:这个优化,基本可以扩展到使用这个基础技术的所有业务,受益也是非常大的
    • 应用代码:只针对本应用的一些优化

    但是实际上,上述三者经常都是结合起来做的。没有非常明显的界限。

  • 相关阅读:
    AppServ设置虚拟主机 及域名连接
    PHPCMS v9 实现首页,列表页,内容页调用点击量方法
    phpcms v9 后台首页 去掉团队信息等版权
    phpcms v9 在当前栏目下获取父栏目与当前栏目的名称与连接
    不是技术牛人,如何拿到国内IT巨头的Offer
    解决phpcms V9缩略图模糊的方法
    apache、nginx、iis 全球分布
    获取屏幕宽度、浏览器宽度、网页高度,宽度信息
    21个适合扁平化设计的创意超链接效果
    javascript模拟鼠标双击事件
  • 原文地址:https://www.cnblogs.com/bqcoder/p/6233967.html
Copyright © 2011-2022 走看看