performance - 空白何时会影响性能?

标签 performance compiler-construction whitespace interpreter comments

这是我一直想知道的事情,所以在这里。

在编写代码时,我被教导要隔开行、注释它们等……以提高可读性(我猜我们大多数人都是如此)。我显然不认为这是任何类型的问题,但它让我想到,如果编译器/解释器或其他任何东西都忽略了所有这些空格和注释部分,这对其性能有多大影响?

诚然,我对编译器的运作方式知之甚少——只了解基本概念。但是,我有一个合理的想法,即要能够“忽略空格”,首先需要识别它(至少),这需要工作,因此需要时间。

然后我想,极端级别的空白或注释呢?比如说,数百万或数十亿的部分?

我想我要问的问题是:在什么时候(即极端级别)忽略代码部分会影响编译器/解释器产生及时结果的能力,从而影响用户体验?

谢谢。

最佳答案

尝试这个:

Do comments affect Perl performance?

编辑评论。

在 Scheme 中使用 hello world 的简单示例,其中包含大量不同的注释行:

netbsd1# ls -l file* 
-rw-r--r--  1 root  wheel        1061 Mar 11 00:01 file.out
-rw-r--r--  1 root  wheel      102041 Mar 11 00:01 file1.out
-rw-r--r--  1 root  wheel    10200041 Mar 11 00:01 file2.out
-rw-r--r--  1 root  wheel  1020000041 Mar 11 00:03 file3.out
netbsd1# for i in file*
> do
> echo $i
> time ./scm $i
> done
file.out
hello world
    0.06s real     0.01s user     0.01s system
file1.out
hello world
    0.03s real     0.01s user     0.02s system
file2.out
hello world
    0.64s real     0.28s user     0.30s system
file3.out
hello world
   61.36s real    11.78s user    41.10s system
netbsd1# 

显然,1GB 的文件产生了重大影响,考虑到我在这个盒子上只有 512M 的 RAM,这并不一定令人惊讶。

此外,这是解释/编译速度。如果您实际编译了这些文件,则运行时将完全相同。您可以得出自己的结论来定义影响。

关于performance - 空白何时会影响性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5267917/

相关文章:

javascript - 通过 framerate/requestAnimationFrame 确定元素是否在屏幕上

javascript - 如何提高 JavaScript 文本格式化程序的性能?

performance - 在我的速度测试中,Lua 表哈希索引比数组索引更快。为什么?

python - 用于处理大整数的多个数字数组

java - java去除所有空格的方法

java - 如何使用 scanner.next() 读取空格

parsing - 句法分析和语义分析

c - 现代操作系统/编译器,其中 int(在 C 中)不是 32 位?

javascript - 用 Python 编写的类 CoffeeScript 语言

variables - 使用msdeploy在powershell中使用变量中的空格