#define MAX_NUM 1000
typedef struct
{
unsigned long SrcAddr;
unsigned char SrcPort;
unsigned short FrmNo;
unsigned long Timer;
} stDrNeInfo;
stDrNeInfo pTmp2[MAX_NUM];
unsigned long ptr[MAX_NUM];
main()
{
unsigned long phyaddr,timer1;
unsigned int i;
stDrNeInfo pTmp;
for(i=0;i<MAX_NUM;i++)
{
ptr[i]=xalloc(sizeof(stDrNeInfo));//把结构分配在xmem中
xmem2root(&pTmp,ptr[i],sizeof(stDrNeInfo));
pTmp.FrmNo=i;
root2xmem(ptr[i],&pTmp,sizeof(stDrNeInfo));
}
for(i=0;i<MAX_NUM;i++)
{
pTmp2[i].FrmNo=1;
}
// printf("/n");
timer1=MS_TIMER;
for(i=0;i<MAX_NUM;i++)
{
xmem2root(&pTmp,ptr[i],sizeof(stDrNeInfo));
if(2000==pTmp.FrmNo)
printf("equal");
}
printf("/n%lu",MS_TIMER-timer1);
timer1=MS_TIMER;
for(i=0;i<MAX_NUM;i++)
{
if(2000==pTmp2[i].FrmNo)
printf("equal");
}
printf("/n%lu",MS_TIMER-timer1);
}
结果显示:
96
6
从xmem中搬移多了速度非常慢,所以在lmhub中不能把路由节点信息放在xmem中。