当前位置:编程学习 > C#/ASP.NET >>

项目瓶颈,求教

在通信线程中存储1分钟实时数据,
通信线程解析数据包一次40毫秒
一次解析数据包10000个通道
一个通道就是一个结构体
现在是存储一次就要声明一个结构体对象
循环1W个结构体下来时间远远超过40毫秒了
如果处理?
public struct Channel_struct
{
     public string pmuid { get; set; }  
     public string valuse { get; set; } 
     public string pmuid1{ get; set; }  
     public string valuse1 { get; set; }
     public string pmuid2 { get; set; }  
     public string valuse2 { get; set; }
     public string pmuid3 { get; set; }  
     public string valuse3 { get; set; }
     public string pmuid4 { get; set; }  
     public string valuse4 { get; set; }
}
public static Channel_struct[][] Channellist1;
public static List<Channel_struct[]> Channellist_data1 = new List<Channel_struct[]>();
Channellist1 = new Channel_struct[3000][];
for (int i = 0; i < 3000; i++)
{
     Channellist1[i] = new Channel_struct[9000];
     for (int j = 0; j < 9000; j++)
     {
           Channellist1[i][j].pmuid = j.ToString();
           Channellist1[i][j].pmuid1 = j.ToString();
           Channellist1[i][j].pmuid2 = j.ToString();
           Channellist1[i][j].pmuid3 = j.ToString();
      } 
}
            int num = 0;
            while (true)//通信循环监听
            {

                if (num >= 3000)
                {
                    //Channellist_data1.Remove();
                }
                if (num >= 3000)
                {
                    for (int i = 0; i < 9000; i++)
                    {
                        Channellist1[2999][i].valuse = num.ToString();
                    }
                }
                else
                {
                    for (int i = 0; i < 9000; i++)
                    {
                        Channellist1[num][i].valuse = num.ToString();
                    }
                }
                Channellist_data1.Add(Channellist1[num]);
}
                
还是没满足要求?
各位请教。。。
                num++;
            } 共享内存 --------------------编程问答-------------------- 这样一个二维数组会不会太大,还有j.toString()这里将产生36000*300个String啊 --------------------编程问答-------------------- 先在数据结构的定义上下功夫,而不是优化传输程序。前者使用正确的数据格式可以立刻把数据量下降几个数量级。 --------------------编程问答-------------------- 什么烂代码啊 --------------------编程问答-------------------- 额,不猜测。这东西你需要用实际的检测工具具体瓶颈在哪里,而不是没啥依据的让俺们去猜测瓶颈在哪里 --------------------编程问答-------------------- 优化你的结构体定义部分   这儿才是你运行时间长的瓶颈   --------------------编程问答-------------------- 多线程,值得拥有 --------------------编程问答-------------------- 不知道说的是啥情况 --------------------编程问答-------------------- 看了一下,你用的是二维数组3000次的循环,而且还是循环结构体,这样你的运行的时间肯定不小了 --------------------编程问答-------------------- 接收是接收,解析是解析,存储是存储 --------------------编程问答-------------------- 最好优化一下你的代码 --------------------编程问答-------------------- 一直都没在程序中用过结构,看来高效程序才需要这个,没做过高效程序
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,