首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在实践中如何从并发性中读取方差直方图?

在实践中如何从并发性中读取方差直方图?
EN

Stack Overflow用户
提问于 2017-03-09 15:11:06
回答 1查看 55关注 0票数 0

实际上,在Java Concurency中,可以找到以下直方图(12.3):

X轴(水平)有图例:

每线程完成时间

Y轴有传说

线程数

在相关的文本中,作者解释了方差。正如我所理解的,如果我进行了许多相同的工作和最佳结果的实验-1秒,最坏的结果-5秒,然后方差-4秒。

实际上我不明白这个直方图。

引用书中的话:

图12.3显示了使用缓冲区大小为1000的TimedPutTakeTest变体的每个Ͳ任务完成时间,其中256个并发任务中的每个任务只迭代非Ͳ公平(阴影条)和公平信号量(打开条)的1000个项。(第13.3节解释了锁和信号量的公平排队和非公平排队。)非公平信号的完成时间从104到8,714 ms不等,超过80倍。可以通过强制在并发控制中增加公平性来缩小这一范围;这在BoundedBuffer中很容易做到,方法是将信号量初始化为公平模式。如图12.3所示,这成功地大大减少了差异(现在仅为38,194到38,207毫秒),但不幸的是,也大大降低了吞吐量。(具有更典型类型任务的更长时间的Ͳ运行测试可能会显示出更大的吞吐量下降。)

你能解释作者在哪里找到104个和8.714个数字吗?

EN

回答 1

Stack Overflow用户

发布于 2017-03-09 15:29:11

方差是统计中的一个概念,它解释了数据的可变性。因此,从图表中可以清楚地看出,非公平信号量的完成时间范围很广(=方差),而公平信号量的方差很小(因此所有的完成时间大致相同)。

数字104 (0.1秒)和8714 (8.7秒)相应地是图像中最左边和最右边的灰条。

因此,实验采取了一些线程,并对一个公平的和不公平的信号进行了多次计时测试,把线程的总时间/#绘制成一个图表,然后用不同的线程数重复实验。

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

https://stackoverflow.com/questions/42698852

复制
相关文章

相似问题

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