gpt4 book ai didi

lua - table.remove()与p [#p] = nil相同,哪个更快?

转载 作者:行者123 更新时间:2023-12-04 05:14:34 24 4
gpt4 key购买 nike

如标题所示。如果我在lua中有一个表p,正在使用

table.remove(p)

与...相同
p[#p] = nil

如果是这样,那会更快-我猜是第二个,但是想要放心。

“与”相同,我的意思是使用分配为nil的方法来缩小内部阵列存储吗?我似乎在任何地方都找不到此文档。将数组中的最后一个元素设置为nil还是将数组中的最后10个元素设置为nil意味着该数组将缩小,还是始终保留存储空间而不再缩小数组?

我假设该数组是连续的,即它在每个数组条目中存储的值最多为#p。

最佳答案

将最后一个元素设置为nil将不是函数调用。因此,以这种方式,它肯定比table.remove更快。到底有多重要取决于您。

By the 'same as' I mean does the internal array storage shrink using assignment to nil? I can't seem to find this documented anywhere.



没有记录;这允许更改实现。 Lua promise 的所有事情就是将其设置为 nil将减小后续调用 #p返回的大小。除此以外,Lua还可以做其他任何事情,并且这些更改如有更改,恕不另行通知。没什么可依靠的。

但是,我谨建议您,如果您正在考虑进行此类微优化,则可能不应该使用脚本语言。对于性能不够重要而无法花费大量精力的代码,应使用脚本语言。

关于lua - table.remove()与p [#p] = nil相同,哪个更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7129237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com