大多數情況下,您可以簡單地使用重新分配給空數組來清除數組;如果對數組的引用很重要,這隻會成爲問題。在那種情況下,你有什麼效果很好。
這就是它的答案,但出於好奇的緣故,我決定嘗試計算一些清除數組的方法。不幸的是,我有一段時間沒有使用過Haxe,而且我的電腦配置中的某些內容必須改變,所以我現在只能編譯爲Neko和HTML5。無論如何,結果都很有趣。
對於測試,我運行了四種不同的清晰算法,通過長度從8到1048576整數的數組。該算法如下:
拼接清除:
array.splice(0, array.length);
長度清除:
untyped array.length = 0;
分配清除:
array = [];
流行清除:
while (array.length > 0)
array.pop();
下面顯示的所有時間表示執行相同操作100萬次所花費的總時間。
在ネ:
- 熔接:0.51秒
- 長度:0.069秒
- 分配:0.34秒
- 流行:0.071到0.179秒(鱗線性隨着陣列變大)
在HTML5:
- 熔接:0.29秒
- 長度:0.046秒
- 分配:0.032秒
- 流行:0。012秒
這些測試是在64位Windows 7機器和Firefox上運行的。
我有點驚訝while循環方法是javascript中的禁食算法;它讓我覺得那裏正在發生着一些事情。否則,在支持它的平臺上,長度方法很好。
我的測試是在Github的情況下,如果有人想同行審查的方法,也許嘗試在除了Neko和HTML5以外的平臺上的測試。
'array = [];'創建一個新實例,如果您引用了舊數組,則可能會導致意外的結果。 –