我正在将一个复杂的算法从 32 位移植到 64 位,在运行 Windows 7 64 位的 8GB RAM 的 Core i5 机器上计算大约需要 5 个小时。
该应用程序以 .NET 4 为目标,将任务并行库用于大约 60% 的循环,并使用 BigInteger 类。
我正在处理两个数字范围:
- 0 到 ulong.MaxValue(大约是算法的 50%)。
- 具有数十万位数的非常大的整数(约占算法的 50%)。
对这些数字执行的操作包括加法、减法乘法、除法、对数和幂。
一旦移植到 64 位,我将能够分析和计时代码以查看性能提升,但我想知道是否可以通过计算来估计它。
如果是这样,请推荐一些解释相同的文章。