我试图计算一个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并改进此过程以获得更快的计算?
谢谢
这有多种原因:
1.你的for循环在单线程上运行,
2.您在每次迭代中将数据插入数据库,而不是在完成循环处理后批量执行.
建议的解决方案:
1.您可以尝试使用Parallel.For方法来加速1.原因.
示例:https://msdn.microsoft.com/en-us/library/dd460713(v = vs.110).aspx
2.您可以移动代码来保存来自for循环的数据,以加速2.原因.
| 归档时间: |
|
| 查看次数: |
348 次 |
| 最近记录: |