美文网首页aa雨下思考
性能优化逻辑链

性能优化逻辑链

作者: followhy | 来源:发表于2014-08-25 21:58 被阅读303次

下面谈论的背景都是CPU密集型

提高性能的两种方式:

  1. 减少任务的执行时间
  2. 增加任务的计算单元
  • 第一种方式是单线程方式的优化思路,执行时间不可能一直减少,所以优化到一定程度后,会到达瓶颈。
  • 第二种优化方式是多线程并发思路的方式,可以通过增加处理任务的计算单元,让性能提高。由于提高不受限制,优于第一种方式。

并发方式也有瓶颈,瓶颈取决于并发任务中的串行部分

并发任务的串行部分,也就是多线程的数据共享部分。数据的共享的保护大多使用的是锁。多个线程在申请锁失败后,会进入阻塞状态等待这个锁,阻塞导致了线程上下文的切换,产生了线程的性能开销。

要避免线程的开销,必须减少锁的竞争。

锁的相关参数有两个:

  1. 锁的请求频率
  2. 持有锁的时间
  • 缩小锁范围(减少持有锁的时间)
  • 减小锁的粒度(降低锁的请求频率)

减小锁粒度,可以把一个大锁分成小锁。这里要注意死锁问题,避免死锁的常规方法是每个线程的加锁顺序必须相同。

相关文章

  • 性能优化逻辑链

    下面谈论的背景都是CPU密集型 提高性能的两种方式: 减少任务的执行时间 增加任务的计算单元 第一种方式是单线程方...

  • vSphere 性能优化方法 & 故障排错方法及工具总结(一)

    转自@twt社区 本资料主要包括:性能优化方法:vSphere 性能优化逻辑、针对 VM 的性能优化、针对 CPU...

  • 移动端性能优化

    性能优化的维度 1. 逻辑与架构 1. 逻辑优化 逻辑优化的核心: 1. 业务流的逻辑最优; ...

  • 说一说那些我也不太懂的 Python 对象优化

    我们通常做性能优化的思路是:先优化业务逻辑,再优化架构,最后再优化语言的数据结构等。所以如果想将性能优化到极致,往...

  • Android性能优化 - 消除卡顿

    性能优化系列阅读 Android性能优化 性能优化 - 消除卡顿 性能优化 - 内存优化 性能分析工具 - Tra...

  • Android性能优化 - 内存优化

    性能优化系列阅读 Android性能优化 性能优化 - 消除卡顿 性能优化- 内存优化 性能分析工具 - Trac...

  • 前端性能优化(中)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 《前端性能优化(上)...

  • 前端性能优化(下)

    性能优化调研系列文章 《前端性能优化(上)》 《前端性能优化(中)》 《前端性能优化(下)》 《前端性能优化(中)...

  • 接口性能优化指南

    接口性能优化指南 代码是不是渣?代码逻辑梳理与重构,去除不必要的逻辑处理和外部查询 SQL 是不是烂?是否缺乏优化...

  • Awesome Extra

    性能优化 性能优化模式 常见性能优化策略的总结 Spark 性能优化指南——基础篇 Spark 性能优化指南——高...

网友评论

    本文标题:性能优化逻辑链

    本文链接:https://www.haomeiwen.com/subject/emqytttx.html