空格等号

fos*_*fee 5 html javascript c# c++

我只是想知道使用等号之前和之后删除空格的性能是否有差异.像这两个代码片段.

第一

int i = 0;
Run Code Online (Sandbox Code Playgroud)

第二

int i=0;
Run Code Online (Sandbox Code Playgroud)

我正在使用第一个,但我正在学习html/javascript的朋友告诉我,我的编码效率很低.在html/javascript中是真的吗?这是性能的巨大提升吗?它在c ++/c#和其他编程语言中也是一样的吗?关于缩进,他说3个空格比标签更好.但我已经习惯了这样的代码.所以我只想知道他是否正确.

jfr*_*d00 7

你的朋友有点误导.

代码中的额外空格会对JS文件的大小产生微小的差异,这可能会使下载速度产生微小的差异,但如果它显而易见或有意义,我会感到惊讶.

额外的空格不太可能在解析文件的时间上产生有意义的差异.

解析文件后,额外的空格不会对执行速度产生任何影响,因为它们不是解析代码的一部分.


如果您真的想要优化下载或解析速度,那么这样做的方法是以最可读的方式编写代码以获得最佳可维护性,然后对部署的代码使用最小化器,这是许多网站的标准做法.这将为您提供两全其美 - 可维护,可读代码和最小部署大小.

最小化器将删除所有不必要的间距,缩短变量的名称,删除注释,折叠线等...所有这些都旨在使部署的代码尽可能小,而根本不改变代码的运行时含义.


C++是一种编译语言.因此,只有开发人员使用的编译器才能看到任何额外的空格(与注释相同).代码编译成本机代码后,这些空间就消失了,这是最终用户获取和运行的代码.因此,关于行中元素之间的空格的问题根本不适用于C++.

Javascript是一种解释性语言.这意味着源代码被下载到浏览器,然后浏览器在运行时将代码解析为解释器可以运行的某种操作码形式.Javascript中的空格将是下载代码的一部分(如果您不使用最小化器来删除它们),但是一旦解析了代码,这些额外的空间就不是代码运行时性能的一部分.因此,空间可能对下载时间产生很小的影响,并且可能对解析时间的影响甚至更小(尽管我猜测不太可能是可测量的或有意义的).如上所述,为Javascript优化此方法的方法是使用空格来增强源代码的可读性,然后在代码上运行最小化器以生成代码的部署版本,以最小化文件的部署大小.这样可以保持最大的可读性并最大限度地减少下载量.