项目瓶颈,求教
在通信线程中存储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#