我使用Walkthrough: Using BatchBlock and BatchedJoinBlock to Improve Efficiency进行测试,我对MaxDegreeOfParallelism
,BoundedCapacity
,MaxMessagesPerTask
感到困惑,如何使用它们来提高性能。
我使用下面的代码进行测试,将BoundedCapacity
从-1
增加到30
,当BoundedCapacity
等于' -1时,我发现时间最长。 ,等于' 1'时间最短,然后从2
增加,计时器增加,然后大于等于1
。
当我使用BoundedCapacity
MaxMessagesPerTask
进行测试时,时间似乎没有改变。
var insertEmployee = new ActionBlock<Employee>(e =>
AdoDbContext.InsertEmployees(new Employee[] { e }, connectionString),new ExecutionDataflowBlockOptions {
BoundedCapacity = 30
//MaxDegreeOfParallelism = 6
//MaxMessagesPerTask = 5
});
EDIT1:
我使用和不使用BatchBlock
进行测试,它没有像docuemnt输出那样产生差异。时间非常接近