执行累加语句会使得运行时间变长?
向词典内添加内容后,需要listid++来增加下标的值(40行),但是只要有listid进行累加的语句都会使得运行时间变长(近3000ms),将其注释掉之后程序就快很多了(<400ms),循环中同样有过count计数器用于计算循环次数却不会使程序变慢,求解原因。
其中MAX_VAL = 4096,CHAR_COUNT = 256,测试时文件大小29.7M,循环31233732次。
void LZWCompress::Encode()
{
int i;
int prev; BYTE ch;
int chid = 1;
Entry list[MAX_VAL];
int indexlist[MAX_VAL][CHAR_COUNT];
int listid = TAG_BEGIN, codeid = 0;
memset(list, -1, sizeof(Entry) * MAX_VAL);
memset(indexlist, -1, sizeof(int) * MAX_VAL * CHAR_COUNT);
code = (int*)malloc(sizeof(int) * size);
DWORD t1 = GetTickCount();
int count = 0;
if (size < 3)
for (i = 0; i < size; i++)
code[codeid++] = (int)stream[i];
else
{
prev = (int)stream[0];
while (true)
{
count++;
if (chid >= size)
{
code[codeid++] = prev;
code[codeid++] = TAG_END;
break;
}
if (listid >= MAX_VAL)
{
code[codeid++] = TAG_NEW;
memset(list, -1, sizeof(Entry) * MAX_VAL);
memset(indexlist, -1, sizeof(int) * MAX_VAL * CHAR_COUNT);
listid = TAG_BEGIN;
}
ch = stream[chid];
if (indexlist[prev][ch] == -1)
{
list[listid].prev = prev; list[listid].ch = ch;
indexlist[prev][ch] = listid++; // This process must be advanced.
code[codeid++] = prev;
prev = (int)stream[chid];
}
else
prev = indexlist[prev][ch];
chid++;
}
}
printf("%d\n", codeid);
DWORD t2 = GetTickCount();
printf("%d times.\n", count);
printf("Encoding time: %d.\n", t2 - t1);
}相关推荐
D45.威纶通系统运行时间累加示例程序.rar
D45.威纶通系统运行时间累加示例程序rar,本资料是关于威纶通系统运行时间累加示例程序,更多详细内容请点击下载!
使用sql语句查询的数据按时间递增累加
使用sql语句将查询的数据中的值按时间递增累加
基于变长数据累加的北斗BlI信号采集方案
北斗D1导航消息中对Neumann-Hoffman码进行了调制,这增加了位符号转换的可能性。 它对可能的位符号转换的相干积分持续时间施加了约束。 提出了北斗B1I信号的采集方案。 首先,通过延迟和乘法来剥夺载波和符号位码。 然后,搜索测距码的多普勒频移。 根据测距码的多普勒频移,数据块的可变长度被累积为1ms数据。 最后,通过基于FFT的同步算法检测测距码相位。 载波频率偏移的边界由测距码的多普勒频移确定,可通过线性调频z变换精确估计。 实验表明,该方法可以实现长期的相干积分,提高了采集概率。
查看mysql语句运行时间的2种方法
网站运行很慢的时候,我就特别起知道为什么这么慢,所以我查啊查,数据库绝对是很重要的一部分,里面运行的sql是绝对不能放过的。平时做项目的时候,我也会注意sql语句的书写,写出一些高效的sql来,所以我会经常测试自己写的sql语句。我把我知道的二个方法,总结一下发出来。 一,show profiles 之类的语句来查看 1,查一下profile是不是打开了,默认是不打开的。 mysql> show profiles; Empty set (0.02 sec) mysql> show variables like “%pro%”; +—————————+——-+ | Variable_name |
电信设备-利用可变长度的累加搜索器接收信息的设备和方法.zip
电信设备-利用可变长度的累加搜索器接收信息的设备和方法.zip


