shilinc

导航

c#中指针的速度优化

using System;
using System.Collections.Generic;
using System.Text;

namespace MATRIX
{
    class MatrixX
    {
        private double[,] m1 = new double[,] { { 1, 2, 3, 4 }, { 2.5, 5, 7, 90 }, { 45, 3.2, 2.5, 320.1 }, { 4587.2, 6542.8, 236.015, 523.57 } };
        private double[,] m2 = new double[4, 4] { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } };
        static void Main(string[] args)
        {
            MatrixX  mx= new MatrixX();
            DateTime start = DateTime.Now;
            mx.MatrixXXpointer();
            DateTime end = DateTime.Now;
            TimeSpan ts = end - start;
            Console.WriteLine(ts.TotalMilliseconds);
            Console.Read();

        }
        public  void MatrixXX()
        {
            for (int i = 0; i < 4; i++)
                for (int j = 0; j < 4; j++)
                {
                    double x = 0;
                    for (int k = 0; k < 4; k++)
                    {
                        x = x + m1[i, k] * m1[k, j];
                    }
                    m2[i, j] = x;
                }
        }
        public unsafe void MatrixXXpointer()
        {
            double*[] S = new double*[4];
            double*[] t = new double*[4];
            for (int i = 0; i < 4; i++)
            {
                double* pt = stackalloc double[4];
                double* pt1 = stackalloc double[4];
                S[i] = pt;
                t[i] = pt1;
            }
             for (int i = 0; i < 4; i++)
                 for (int j = 0; j < 4; j++)
                 {
                     *(S[i] + j) = m1[i, j];
                 }
             for (int i = 0; i < 4; i++)
                 for (int j = 0; j < 4; j++)
                 {
                     double x = 0.0;
                     for (int k = 0; k < 4; k++)
                     {
                         x = x + *(S[i] + k) * *(S[k] + j);
                     }
                     *(t[i]+ j) = x;
                 }

        }
    }
}

posted on 2006-08-14 12:33  SHILIN  阅读(618)  评论(0)    收藏  举报