如何为这个c#代码实现更好的运行时间?

时间:2012-06-29 11:33:36

标签: .net windows-phone-7 biginteger

我在C#中使用BigInteger实现进行一些计算但是Windows Phone中的性能不如所需。

探查器检测到此功能消耗了大部分时间。任何线索?

这适用于Windows Phone 7,我无法通过原生来改进它。

    private const long IMASK = 0xffffffffL;

    /**
     * returns x = x - y - we assume x is >= y
     */
    private static int[] Subtract(
        int     xStart,
        int[]   x,
        int     yStart,
        int[]   y)
    {

        Debug.Assert(yStart < y.Length);
        Debug.Assert(x.Length - xStart >= y.Length - yStart);

        int iT = x.Length;
        int iV = y.Length;
        long m;
        int borrow = 0;

        do
        {
            m = (x[--iT] & IMASK) - (y[--iV] & IMASK) + borrow;
            x[iT] = (int)m;

            //              borrow = (m < 0) ? -1 : 0;
            borrow = (int)(m >> 63);
        }
        while (iV > yStart);

        if (borrow != 0)
        {
            while (--x[--iT] == -1)
            {
            }
        }

        return x;
    }

0 个答案:

没有答案