- 论坛徽章:
- 1
|
关于“永远的UNIX”主页上的一篇文章
我测试的结果,这样的话是原来的3倍左右
- 程序t1.c
- int streql(char *str1,char *str2)
- {
- register long num1;
- while((num1 = *(long *)str1) == *(long *)str2 && num1 & 0xff000000 && num1 &
- 0x00ff0000 && num1 & 0x0000ff00 && num1 & 0x000000ff) {
- ((long *)str1)++;
- ((long *)str2)++;
- }
- while(*str1 == *str2 && *str1) {
- str1++;
- str2++;
- }
- return(*str1 == '\0' && *str2 == '\0');
- }
- main()
- {
- char a1[10001];
- char a2[10002];
- int i;
- memset(a1, '0', 10000);
- a1[10000] = 0;
- memset(a2, '0', 9999);
- a2[9999] = 0;
- for(i = 0; i < 100000; i++) {
- streql(a1, a2);
- }
- }
复制代码- 程序t2
- int streql(char *str1,char *str2)
- {
- while(*str1 == *str2 && *str1) {
- str1++;
- str2++;
- }
- return(*str1 == '\0' && *str2 == '\0');
- }
- main()
- {
- char a1[10001];
- char a2[10002];
- int i;
- memset(a1, '0', 10000);
- a1[10000] = 0;
- memset(a2, '0', 9999);
- a2[9999] = 0;
- for(i = 0; i < 100000; i++) {
- streql(a1, a2);
- }
- }
复制代码
time t1
real 0m1.07s
user 0m1.07s
sys 0m0.00s
time t2
real 0m3.06s
user 0m3.04s
sys 0m0.01s |
|