合理的估算线程池的大小
来源:互联网 发布:恶魔的奶爸 知乎专栏 编辑:程序博客网 时间:2024/05/18 14:14
一般说来,大家认为线程池的大小经验值应该这样设置:(其中N为CPU的个数)
刚刚说到的线程池大小的经验值,其实是这种公式的一种估算值。
- 如果是CPU密集型应用,则线程池大小设置为N+1
- 如果是IO密集型应用,则线程池大小设置为2N+1
如果一台服务器上只部署这一个应用并且只有这一个线程池,那么这种估算或许合理,具体还需自行测试验证。
但是,IO优化中,这样的估算公式可能更适合:
最佳线程数目 = ((线程等待时间+线程CPU时间)/线程CPU时间 )* CPU数目
因为很显然,线程等待时间所占比例越高,需要越多线程。线程CPU时间所占比例越高,需要越少线程。
下面举个例子:
比如平均每个线程CPU运行时间为0.5s,而线程等待时间(非CPU运行时间,比如IO)为1.5s,CPU核心数为8,那么根据上面这个公式估算得到:((0.5+1.5)/0.5)*8=32。这个公式进一步转化为:
最佳线程数目 = (线程等待时间与线程CPU时间之比 + 1)* CPU数目
刚刚说到的线程池大小的经验值,其实是这种公式的一种估算值。
阅读全文
0 0
- 合理的估算线程池的大小
- 如何合理的估算线程池大小
- 合理估算线程池大小
- 如何合理地估算线程池大小?
- 如何合理地估算线程池大小
- 如何合理地估算线程池大小?
- 如何合理地估算线程池大小?
- 如何合理地估算线程池大小?
- 如何合理地估算线程池大小
- 如何合理地估算线程池大小
- 如何合理地估算线程池大小?
- 如何合理地估算线程池大小?
- 如何合理地估算线程池大小
- 如何合理地估算线程池大小
- 如何合理地估算线程池大小?
- 如何合理地估算线程池大小?
- 如何合理地估算线程池大小?
- 如何合理地估算线程池大小?
- C++ 读取txt文件 中文乱码
- IIS部署的网站访问时报错,错误信息:编译器错误信息: CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework……
- 程序文件与预处理
- 计算机硬件系统基础知识板书
- hdu1207(汉诺塔II)
- 合理的估算线程池的大小
- JIT(just-in-time) 即时编译
- 把ImageView转换为位图
- 享元模式 | Flyweight Pattern
- 用swaks进行发件人伪造
- java 构造方法与静态方法
- jQuery节点创建与属性的处理
- 博客搬家了
- 从零开始使用TensorFlow可视化工具Tensorboard