我有一大块lua代码,我希望能够(有选择地)忽略。我没有选择不读它,有时我希望它被处理,有时候不会,所以我不能只是将它评论出来(也就是说,有一大堆代码块,我也可以可以选择阅读无或阅读全部其中)。我提出了两种实现方法(可能更多 - 我非常适合初学者):将代码放在函数中,然后调用或不调用该函数(并且一旦我确定我是通过了我要调用该函数的点,我可以将它设置为nil
以释放内存)或将代码放在if ... end
块中。前者具有一些优点,因为有几个这样的块,并且使用前一种方法可以使一个块更容易加载另一块,即使主程序没有请求它,但后者看起来效率更高。然而,不知道多少,我不知道节能是否值得。在lua中忽略代码的最有效方法是什么?
因此,如何更有效的是:
if false then
-- a few hundred lines
end
比
throwaway = function()
-- a few hundred lines
end
throwaway = nil -- to ensure that both methods leave me in the same state after garbage collection
?
如果它在很大程度上取决于lua的实现,那么“几百行”需要多大才能可靠地发现差异,以及它应包括哪些内容以便进行最佳测试(块的主要用途是定义一个可能有用的函数的负载)?
最近的Lua版本编译成字节码,所以有些百行解析不会让如果不执行的代码很大差异的运行时,无论意味着你使用为了那个原因。 – 2012-07-30 11:57:55
@BasileStarynkevitch所以没有效率检查'如果虚假然后...结束'? (我猜这种情况实际上不会如此频繁地出现*在阅读时*条件的状态是已知的,所以没有检查是有意义的。)感谢评论,顺便说一下。 – 2012-07-30 12:12:30
以下是一个更大的问题:您认为重要的是什么?您正在使用*脚本语言*;性能显然不是最重要的。那么你是否有理由相信这两种模式都明显比其他模式慢?只要使用最能描述你想要为别人做的事情*阅读*代码;如果这是一个性能问题,那么你可以在*之后解决它*你知道这是一个性能问题。 – 2012-07-30 14:36:15