n长度: 25, 字符串总长度: 56
字符串总长度: 57的测试也作了, 与此结果差不多.
时间单位:tick
测试结果如下:
编绎器: VC6
RELEASE
1亿次循环测试结果:
lstrcpy=7437
strcpy = 13047
lstrcpyn = 6797
strncpy = 1672
memcpy = 0
my_memcpy = 1313
StrNCpy = 6812
1KW次循环测试结果:
lstrcpy=734
strcpy = 1313
lstrcpyn = 672
strncpy = 156
memcpy = 0
my_memcpy = 125
StrNCpy = 688
100W次循环测试结果:
lstrcpy=78
strcpy = 125
lstrcpyn = 78
strncpy = 16
memcpy = 0
my_memcpy = 15
StrNCpy = 63
DEBUG:
1亿次循环测试结果:
lstrcpy=7734
strcpy = 2172
lstrcpyn = 7469
strncpy = 1922
memcpy = 1031
my_memcpy = 5437
StrNCpy = 7453
1KW次循环测试结果:
lstrcpy=765
strcpy = 219
lstrcpyn = 734
strncpy = 204
memcpy = 93
my_memcpy = 547
StrNCpy = 750
100W次循环测试结果:
lstrcpy=78
strcpy = 31
lstrcpyn = 63
strncpy = 31
memcpy = 0
my_memcpy = 63
StrNCpy = 78
VS2008 VC 测试:
RELEASE
1亿次循环测试结果:
lstrcpy=7391
strcpy = 4500
lstrcpyn = 6093
strncpy = 1735
memcpy = 0
my_memcpy = 1140
StrNCpy = 6094
1KW次循环测试结果:
lstrcpy=734
strcpy = 454
lstrcpyn = 609
strncpy = 172
memcpy = 0
my_memcpy = 109
StrNCpy = 610
100W次循环测试结果:
lstrcpy=78
strcpy = 47
lstrcpyn = 47
strncpy = 31
memcpy = 0
my_memcpy = 0
StrNCpy = 63
DEBUG:
1亿次循环测试结果:
lstrcpy=7734
strcpy = 2797
lstrcpyn = 6797
strncpy = 2094
memcpy = 1094
my_memcpy = 7593
StrNCpy = 6860
1KW次循环测试结果:
lstrcpy=781
strcpy = 282
lstrcpyn = 687
strncpy = 203
memcpy = 110
my_memcpy = 765
StrNCpy = 688
100W次循环测试结果:
lstrcpy=78
strcpy = 32
lstrcpyn = 62
strncpy = 31
memcpy = 0
my_memcpy = 78
StrNCpy = 79
memcpy 为什么总为:0 ?
关memcpy 性能参考: VC 对 memcpy 的优化:http://blog.codingnow.com/2005/10/vc_memcpy.html
结果:
1. CPU只用一个核
2. VS2008 作了相关优化, 在strcpy上与vc6 有很大不同.
3. lstrcpy 性能过的去, 并且不依赖runtime lib, 应该更多使用.