首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Scala:最大化Actor性能的corePoolSize

Scala:最大化Actor性能的corePoolSize
EN

Stack Overflow用户
提问于 2012-06-13 01:29:59
回答 1查看 298关注 0票数 2

我正在尝试基于经典的员工池模型来构建Scala应用服务器。鉴于此:

这个机器有一个四核的processor

  • there是一个调度器,它专门用来阻塞网络I/O来监听

  • 工作人员都是非阻塞的。

corePoolSize最大限度地提高性能的最佳价值是什么?理想情况下,当工作线程池的大小等于处理器核数时,性能就会最大化。因此,在这种情况下,我想最好的值是5(调度器为1,工作人员为其他4),或者我可以将值设置为4,并覆盖调度程序的调度器方法,这样它就不会与工作人员共享线程池。

这是正确的吗?任何建议都很感激。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-13 06:44:58

只是一些暗示。

在理想情况下,当工作线程池的大小等于处理器核数时,性能就会最大化。

不怎么有意思。下面是如何估计可以获得最大吞吐量的线程数:

代码语言:javascript
运行
复制
N = C * U * (1 + W/C) 

其中N = number of threadsC = number of CPU coresU = target CPU utilization rateW/C = Waiting time to Computing time ratio (等待时间表示IO等)。

但是请注意,上面的公式只考虑CPU,而CPU并不是唯一需要管理的资源。为响应时间进行调优也是一件有点不同的事情。

陈词滥调的回答是,你必须进行测试,看看什么不是最好的选择。您可能可以使用上面的公式作为起点。还请注意核心池大小!=最大池大小。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11007103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档