|
楼主 |
发表于 2009-6-12 11:24:35
|
显示全部楼层
引用第29楼linzefei于2009-06-12 10:10发表的 :
合并后 那时就好了。
刚才刷新下 似乎
对不起,本版块为认证版块,您没有权限查看此版块的内容!
.......
用你这个法子粗略地测试了下,用的都是储存整数功能,为公平起见都用cj函数。
结果是,数组80 哈希表50 gc20
以下函数每0.00001s(Timer)执行一次。
[jass]
//哈希表,udg_i为50不卡
function abc takes nothing returns nothing
local integer i=0
loop
exitwhen i>udg_i
call SaveInteger( udg_ht, 1, 1, 3 )
set i=i+1
endloop
endfunction
//gamecache,udg_i为20不卡
function abc takes nothing returns nothing
local integer i=0
loop
exitwhen i>udg_i
call StoreInteger( udg_gc, "1", "1", 3 )
set i=i+1
endloop
endfunction
//数组,udg_i为80不卡
function abc takes nothing returns nothing
local integer i=0
loop
exitwhen i>udg_i
set udg_ar[100]=3
set i=i+1
endloop
endfunction
[/jass]
明显地,比gc快多了,虽然及不上直接设置数组值,但考虑到数组有下标上限,用来做单位index比较麻烦,扣除这部分代价综合来看还是好于数组系统的。至于gamecache系统那完全不必说了,除了速度方面问题,还有其他负面问题,比如我上面提到的那些。 |
|