1 require("socket") 2 3 --local temp = 0 4 function func(a, b) 5 if a > b then 6 --local temp = 0 7 --temp = a 8 --a = b 9 --b = a 10 a, b = b, a 11 end 12 return a 13 end 14 a, b = 100, 200 15 local initCnt = 0 16 while initCnt < 10 do 17 local t0_begin = socket.gettime() 18 local t1_begin = os.clock() 19 local num = 0 20 while num < 70000000 do 21 func(a, b) 22 num = num + 1 23 end 24 local t0_end = socket.gettime() 25 local t1_end = os.clock(); 26 print(t0_end - t0_begin) 27 print(t1_end - t1_begin) 28 initCnt = initCnt + 1 29 end
使用1: a, b = b, a
耗时(单位:s):
5.4483108520508
5.448
5.4453125
5.445
5.4453105926514
5.445
5.4473114013672
5.448
5.449312210083
5.449
5.4473114013672
5.447
5.4513111114502
5.452
5.4463119506836
5.446
5.4463119506836
5.446
5.4513111114502
5.452
使用2:中间变量方式, temp定义在func里面
耗时:
5.4983139038086
5.498
5.5033149719238
5.503
5.4953155517578
5.495
5.4913139343262
5.492
5.5033149719238
5.503
5.4983139038086
5.498
5.4983139038086
5.499
5.5033149719238
5.503
5.4953136444092
5.495
5.4983158111572
5.499
使用3:使用中间变量方式,temp定义在func外面
耗时:
5.5143146514893
5.514
5.5143165588379
5.514
5.5123138427734
5.512
5.5133152008057
5.514
5.5133152008057
5.513
5.5163154602051
5.516
5.5133171081543
5.514
5.5183162689209
5.518
5.5143146514893
5.514
5.5163154602051
5.517
在自己电脑上测试,测试期间,没有进行其他操作。
测试结果看,使用lua的值互换,耗时更短(?为什么qucik中有地方使用中间变量方式-->qucik源码.Cocos2d.lua文件中有用到,c++使用习惯了吗?)