zoukankan      html  css  js  c++  java
  • 10-创建多少线程数才是合适的

    1、为什么要使用多线程?

    性能的核心指标:

    延迟,指的是发送请求到收到响应的过程的耗时。延迟越短,程序执行时间越短,性能越好。

    吞吐量,指的是单位时间能够处理的请求数。吞吐量越大,意味着程序能处理的请求越多,性能也就越好。

    所以,要提升性能,就是要  降低程序的延迟。提高程序的吞吐量。

    两个方向:1.优化算法 2.将硬件的性能发挥到极致,具体来讲,就是要提升硬件的利用率,再具体的讲,就是要提升 I/O利用率和CPU利用率。

    2、不同的场景工程上有不同的线程数经验值

    CPU密集型:最佳线程数=CPU核数+1

    I/O密集型:最佳线程数=CPU核数 *(1+(I/O耗时 / CPU耗时))

    不过,定性的io密集或者cpu密集很难在定量的维度上反应出性能瓶颈,而且公式上忽略了线程数增加带来的cpu消耗,性能优化还是要定量比较好,这样不会盲目,比如io已经成为了瓶颈,增加线程或许带来不了性能提升,这个时候是不是可以考虑用cpu换取带宽,压缩数据,或者逻辑上少发送一些。经验值在大部分应用环境是合理的,是积累了一些调优经验后给出的方案,没有特殊需求,初始值我会选大家都在用的标准。

  • 相关阅读:
    MxNet Windows下安装
    Binary Tree Postorder Traversal--leetcode难题讲解系列
    Populating Next Right Pointers in Each Node II--leetcode难题讲解系列
    Recover Binary Search Tree--leetcode难题讲解
    bash + script
    Linux笔记
    谷歌面经 Tree Serialization
    Python strange questions list
    bit操作 转
    ubuntu系统从中文环境改成英文环境
  • 原文地址:https://www.cnblogs.com/bbsh/p/11714685.html
Copyright © 2011-2022 走看看