获得循环的最佳性能

ᔕIᑎ*_*ᑎᗪI 3 c# cpu

我试图计算一个BigInteger变量,然后将结果添加到数据库.

发生的事情是这样的:

            for (BigInteger i = 0; i < ABigIntegerVariable; i++)
        {
            // add to db and calculate on a BigInteger
        }
Run Code Online (Sandbox Code Playgroud)

所以问题是当我看到任务管理器上的CPU使用率只有8%左右!这个循环需要大约1小时或更长时间!

因此,在尝试计算和添加到数据库时,我没有必要使用计算机.

您是否会告诉我如何使用高计算百分比的CPU并改进此过程以获得更快的计算?

谢谢

And*_*w B 8

这有多种原因:

1.你的for循环在单线程上运行,
2.您在每次迭代中将数据插入数据库,而不是在完成循环处理后批量执行.

建议的解决方案:

1.您可以尝试使用Parallel.For方法来加速1.原因.

示例:https://msdn.microsoft.com/en-us/library/dd460713(v = vs.110).aspx

2.您可以移动代码来保存来自for循环的数据,以加速2.原因.