51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2121|回复: 1
打印 上一主题 下一主题

[转贴] 性能优化方法总结

[复制链接]
  • TA的每日心情
    奋斗
    2018-11-26 09:42
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]测试连长

    跳转到指定楼层
    1#
    发表于 2019-3-15 17:18:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 PaaS小魔仙 于 2019-3-15 17:21 编辑

    性能优化策略
    • 空间换时间。各种cache如CPU L1/L2/RAM到硬盘,都是用空间来换时间的策略。这样把计算过程一步一步的保存或缓存下来,不需要每次用的时候再计算一遍,比如数据缓冲,CDN等。这样的策略还表现为冗余数据,比如数据镜象,负载均衡。
    • 时间换空间。当空间成为瓶颈时,切分数据分批次处理,用更少的空间完成任务处理。如:上传大附件时经常用这种方式。
    • 简化代码。最高效的程序就是不执行任何代码的程序,所以代码越少性能就越高。如:减少循环的层数,减少递归,在循环中少声明变量,少做分配和释放内存的操作,尽量把循环体内的表达式抽到循环外,条件表达的中的多个条件判断的次序等等
    • 并行处理。用多个进程或者线程同时处理业务,缩短业务处理时间。

    总之,根据2:8原则来说,20%的代码消耗80%的性能,找到那20%的代码,就可以优化对应的80%性能。

    性能优化方法
    1.CPU问题:
    • 考虑使用更高级的CPU代替当前的CPU
    • 对于多CPU,考虑CPU之间的负载分配
    • 考虑在其他体系上设计系统,例如增加前置机,设置并行服务器等

    2.内存和高速缓存:
    • 内存的优化包括操作系统、数据库、应用程序的内存优化
    • 过多的分页与交换可能降低系统的性能
    • 内存分配也是影响系统性能的主要原因
    • 保证保留列表具有较大的邻接内存块
    • 调整数据块缓冲区大小(用数据块的个数表示)是一个重要内容
    • 将最频繁使用的数据保存在存储区中

    3.磁盘(I/O)资源问题
    磁盘读写进度对数据库系统是至关重要的,数据库对象在物理设备上的合理分布能改善性能;磁盘镜像会减慢磁盘写的速度。
    • 通过把日志和数据库对象分布在独立的设备上可以提高系统的性能
    • 把不同的数据库放在不同的硬盘上,可以提高读写速度。经常把数据库、日志放在不同的设备上
    4.调整配置参数
    • 包括操作系统和数据库的参数配置
    • 并行操作资源限制的参数(并发用户的数目、会话数)
    • 影响资源开销的参数
    • 与I/O有关的参数

    5. 优化应用系统网络设置
    • 可以通过数组接口来减少网络呼叫
    • 调整会话数据单元的缓冲区大小
    • 共享服务器进程比专用服务进程提供较好的性能

    6. 数据库
    6.1 性能问题
    • 单一类型事务响应时间过长

       数据库服务器负载、糟糕的数据设计、事务粒度过大、批任务对普通用户性能的影响。
    • 并发处理能力差
    • 锁冲突严重

      资源锁定造成的数据库事务超时、数据库死锁。
    6.2 解决方法
    • 监视性能相关数据
    • 定位资源占用较大的事务并做出必要的优化或调整
    • 定位锁冲突,修改锁冲突发生严重的应用逻辑
    • 对规模较大的数据或者无法通过一般优化解决的锁冲突进行分布


    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-24 05:17 , Processed in 0.065044 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表