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换取带宽,压缩数据,或者逻辑上少发送一些。经验值在大部分应用环境是合理的,是积累了一些调优经验后给出的方案,没有特殊需求,初始值我会选大家都在用的标准。

  • 相关阅读:
    准备工作
    个人作业感言
    年度书单-结对编程
    案例分析
    编程作业_词频统计
    2、阅读任务
    1、准备工作
    个人作业获奖感言
    3 20210405-1 案例分析作业
    202103226-1 编程作业
  • 原文地址:https://www.cnblogs.com/bbsh/p/11714685.html
Copyright © 2011-2022 走看看