使用空格而不是Tabs进行缩进的性能影响

时间:2011-06-10 14:47:48

标签: ruby coding-style

我目前使用软标签(即空格)来缩进我的Ruby代码,如果我要使用硬标签,它会在解释代码时提高性能吗?我认为读取一个制表符比解析4个空格字符更快(但可以忽略不计)。

3 个答案:

答案 0 :(得分:11)

您是否知道从源代码解释所涉及的所有阶段?只有第一个,词法分析,必须处理空白,而在空白的情况下,“处理”意味着“忽略它”。这个阶段只占总时间的一小部分,通常使用正则表达式完成,并且几乎具有线性复杂性。与解析相比,这可能需要花费很长时间才能进行比较。解释只是有点可行,因为这两个阶段(加上第三个字节码生成,在使用字节码的实现中)比非平凡程序的实际执行要少得多。

不要担心这个。没有人会注意到任何差异。老实说,如果你能用time和一个接近没有实际工作的小程序来测量差异,我会感到惊讶。

答案 1 :(得分:9)

可以肯定的是,解析器在读取带标签缩进的一个字节与空间的四个字节之间可能产生的微不足道的影响将被下一个必须读取代码并修复标签/间隔混乱的人所抵消。

请使用空格。签名,下一个读你代码的人。

答案 2 :(得分:8)

性能影响是ε,即大于零的非常小的数字。这些空间只能读取和解析一次,然后Ruby代码转换为中间形式。