查找并发项目数
Find count of concurrent items
我并行执行了 48 个条目,我想绘制一个图表,说明我每次有多少个线程 Parallel.ForEach 运行。
我制作了如下所示的调试输出,其中相邻的 start/end 行来自同一线程。为了快速获得结果,我进入 Excel 并将它们放入 A 列:
A
61771961 ParallEx starts
61773115 ParallEx ends
61771961 ParallEx starts
61773271 ParallEx ends
61771961 ParallEx starts
61773287 ParallEx ends
61771961 ParallEx starts
61773318 ParallEx ends
现在我使用 =VALUE(MID(A1; 1; 8))
来获取以下形式的值对:
B C
61771961 61773115
61771961 61773271
61771961 61773287
61771961 61773318
...
然后我将数字 1..96 放入 D 列,并使用 =SMALL(B:C;D1)
获取任何线程发生更改的时间点的有序列表:
D E
1 61771961
2 61771961
3 61771961
4 61771961
5 61772507
6 61773037
7 61773115
8 61773115
9 ...
然后我想知道在每个有趣的时间点我有多少线程运行:
=SUMIFS(B:B;CONCATENATE(">=";E1);C:C;CONCATENATE("<=";E1))
但结果始终为零。我的错误在哪里?
根据您的示例,您在 C 列中的值都大于您在 E 列中的值。
C 列:61773115 E 列:61771961
您的 sumifs 正在寻找小于或等于 E 列的列,这应该可以正常工作,但它也在寻找 C 列小于它没有找到的 E 列
希望对您有所帮助
我并行执行了 48 个条目,我想绘制一个图表,说明我每次有多少个线程 Parallel.ForEach 运行。
我制作了如下所示的调试输出,其中相邻的 start/end 行来自同一线程。为了快速获得结果,我进入 Excel 并将它们放入 A 列:
A
61771961 ParallEx starts
61773115 ParallEx ends
61771961 ParallEx starts
61773271 ParallEx ends
61771961 ParallEx starts
61773287 ParallEx ends
61771961 ParallEx starts
61773318 ParallEx ends
现在我使用 =VALUE(MID(A1; 1; 8))
来获取以下形式的值对:
B C
61771961 61773115
61771961 61773271
61771961 61773287
61771961 61773318
...
然后我将数字 1..96 放入 D 列,并使用 =SMALL(B:C;D1)
获取任何线程发生更改的时间点的有序列表:
D E
1 61771961
2 61771961
3 61771961
4 61771961
5 61772507
6 61773037
7 61773115
8 61773115
9 ...
然后我想知道在每个有趣的时间点我有多少线程运行:
=SUMIFS(B:B;CONCATENATE(">=";E1);C:C;CONCATENATE("<=";E1))
但结果始终为零。我的错误在哪里?
根据您的示例,您在 C 列中的值都大于您在 E 列中的值。
C 列:61773115 E 列:61771961 您的 sumifs 正在寻找小于或等于 E 列的列,这应该可以正常工作,但它也在寻找 C 列小于它没有找到的 E 列
希望对您有所帮助