我只是想知道在使用等号前后删除空格的性能是否有所不同。像这两个代码片段。

第一的

int i = 0;

第二
int i=0;

我正在使用第一个,但是我正在学习html/javascript的 friend 告诉我,我的编码效率很低。在html/javascript中是真的吗?这对性能有很大的影响吗?在c++/C#和其他编程语言中也一样吗?关于缩进,他说3个空格比该选项卡更好。但是我已经习惯于这样的代码。所以我只想知道他是否正确。

最佳答案

您的 friend 有点误入歧途。

代码中的多余空格将对JS文件的大小产生很小的影响,而这可能对下载速度造成很小的影响,尽管如果它引人注目或有意义,我会感到惊讶。

多余的空间不太可能对解析文件的时间产生有意义的变化。

一旦文件被解析,多余的空间就不会影响执行速度,因为它们不是已解析的代码的一部分。

如果您确实要优化下载或解析速度,则这样做的方法是以尽可能易读的方式编写代码,以实现最佳的可维护性,然后对部署的代码使用最小化程序,这是许多网站的标准做法。这将为您提供两全其美的优势-可维护的,可读的代码和最小的部署大小。

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

C++是一种编译语言。这样,只有开发人员使用的编译器才能看到任何多余的空间(与注释相同)。一旦将代码编译成 native 代码,这些空间就消失了,这就是最终用户获得并运行的 native 代码。因此,关于一行中元素之间的间距的问题根本就不适用于C++。

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

关于javascript - 等号中的空格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30814957/

10-11 23:01
查看更多