是否应该在生产时缩小服务器代码? [关闭]

Posted

技术标签:

【中文标题】是否应该在生产时缩小服务器代码? [关闭]【英文标题】:Should one minify server code when it's in production? [closed] 【发布时间】:2011-10-12 06:19:51 【问题描述】:

当涉及到前端代码时,您总是会在生产中将其缩小(删除空格、cmets 等)。

应该对服务器代码做同样的事情吗?我的服务器文件中通常有很多 cmets。但我从未听说有人这样做。

如果以同样的方式优化代码,服务器会不会运行得更快?

【问题讨论】:

你可能总是缩小,但其他人可能不同意。 【参考方案1】:

您不会有任何改进,因为当您的服务器端代码被转换为机器代码(或解释)时,空格和所有格式都会丢失。它也不是通过网络发送的,而是从本地文件系统中读取的,因此虽然字符越少,启动速度就越快,但从长远来看,它不会产生任何影响,而且启动速度的提升是微不足道的(甚至是不明显的) .

所以,不,缩小您的服务器端代码基本上是无用的,更糟糕​​的是,它可能会使堆栈跟踪完全无用,因为同一行中会有很多代码(不一定具有与您相同的格式)使用)。

【讨论】:

您可以缩小代码并保持函数名称不变,保留堆栈跟踪。 缩小不涉及函数名称,它涉及空格和换行符,这会阻止您找到真正的罪魁祸首,因为没有新行要计算。【参考方案2】:

我认为缩小与减少线路上的字节数有关,而不是运行时效率。

【讨论】:

编译时间只有半纳秒,以后再也不会了,对吗? 我不知道。测量它并回来告诉我们。 我需要在接线之前和接线比较之后进行编译器级别故障。这周我太忙了,没时间破解 Node.js 的源代码。下个月见。 我在讽刺。我真的不在乎。这个问题已经快四年了。【参考方案3】:

我不认为这对服务器端代码有任何好处,因为服务器会评估代码并且实际上并没有将其发送下来。如果您正在寻找优化生产代码,您可以考虑设置编译器缓存,例如 php 的 APC

【讨论】:

Node.js 不需要 APC,因为 node.js 不像 PHP 那样具有 share-nothing-architecture。 我的回答是指服务器端代码,如 php 而不是 js,当然 javascript 不会从 php 编译器缓存中受益 好的。但是像 node.js 这样的服务器端 javascript 也不能​​从 APC => 字节码缓存中受益...... 您显然从未在软盘上托管过服务器...【参考方案4】:

缩小的目的是:(1)最小化通过网络传输的字节数; (2) 加快解析速度(通过浏览器)。

服务器端缩小的等价物是字节码编译。在 Python 中有 "Compiled" Python(.pyc.pyo)文件,在 PHP 中有 Zend Optimizer 和 PHP bytecode Compiler,在 Perl 中有 B::Bytecode

在服务器大小上,没有“通过网络传输”,(源)文件只是从磁盘读取,因此在这方面性能差异要小得多;主要的性能提升来自加速解析。

【讨论】:

以上是关于是否应该在生产时缩小服务器代码? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何为生产准备 nodejs?

Django:用于开发的 sqlite,用于生产的 mysql? [关闭]

YouTube Data API v3 在生产服务器上部署时不起作用 [关闭]

更改代码后Vue组件未更新[关闭]

我是在生产构建期间还是在准备生产时删除 webpack-dev-server 和 hot-module 中间件代码?

我应该将 Flutter Web 用于不应该在夏季之前投入生产的网站项目吗? [关闭]