节点服务器:代码权重和服务器性能

时间:2015-10-02 19:42:26

标签: node.js memory-management

我想知道使用15.5k库只是为了进行非常简单的验证,以及使用我自己的1k超简单验证类,在我有超过10k的时间内有多重要我的系统上的用户(Node + Mongo在超级奔腾8核32gb ram上运行)。 关心这14.5k的代码是最糟糕的吗?

我无法找到任何线索,因为我这么凄凉,但总是在想。

我非常赞赏你的意见。

2 个答案:

答案 0 :(得分:1)

服务器开发的一个好处是你通常拥有大量可用的RAM,并且代码通常只在服务器启动时加载一次,因此加载时间不是用户体验的一部分。

由于这些原因,您甚至难以衡量1k库和15k库之间的有意义的影响。您可能关心每个活动用户15k的内存使用量,但您不会关心一次加载到内存中的额外15k代码,它不会以任何方式影响您的服务器性能。

所以,我说你不应该担心代码大小(在合理范围内)。相反,选择最能解决问题的工具,使您的开发最快,最可靠。并且,在可能的情况下,使用之前构建和测试的内容,而不是从头开始构建自己的内容。这将使您有更多的开发时间花在真正重要的事情上,以使您的网站更好,更好或更好。或者,它会让您更快地进入市场。

作为参考,15k是计算机总RAM的0.000045%。

答案 1 :(得分:0)

我同意@ jfriend00。对于您描述的代码大小,内存/性能几乎没有影响。您可以根据自己的使用情况对不同的模块进行基准测试,并自行选择。但是,我认为你应该问自己一些其他(类似的)问题 -

  1. 为什么我使用的套餐太“大”了?也许有一个“小”的 以相同的性能完成同样的工作。当我在这里说大或小时我的意思是功能性。大多数情况下,即使尺寸看起来很大,您也希望使用最少的功能。如果您使用验证模块也验证电子邮件,但您不需要它 - 并不意味着您不应该使用它,只是知道权衡 - 它可能会更频繁地更新,因为电子邮件验证中可能存在错误导致您使用的整数验证中的其他错误,如果您希望生产代码感觉更安全,则需要阅读更多代码(如下所述)。
  2. 包装是否按预期运行? (阅读测试)
  3. 我使用的包装“安全”/“可以生产”吗?阅读你使用的软件包的代码,确保没有可疑的东西 - 通常节点包不是那么大,因为大多数是最小的(我从来没有使用它,但我知道https://requiresafe.com/存在这些类型的问题 - 您可能想要查看它。请注意,如果它们的大小较大,则可能意味着您必须阅读更多代码。
  4. 在包'依赖项<。li>上递归询问这些问题(以及其他人认为你应该)