选择纯js库而不是具有一些C++代码的库的优缺点是什么?例如,时区-JS(纯JS)在节点时间(cpp 插件)上具有时区支持的日期。
PS:应用程序需要托管在Heroku中
谢谢
假设库在功能上相似,我可以想到几个优点和缺点:
C++优点
- 通常比纯JS实现更快(这可能并不总是正确的 - 始终测试自己)
- 能够在线程池中异步执行 CPU 密集型工作
C++缺点
- 可能无法在所有平台上编译,通常发生在插件需要一些第三方库时
- 可能更难调试/修复问题(取决于您在 C++/V8 方面的专业水平)
如果您希望使用 C++ 插件,但担心它无法在 Heroku 上运行,请创建一个使用它的小型测试应用程序并部署它。如果你更喜欢使用JS库,但担心速度,你真的需要做你自己的实际性能测试,看看它是否真的是一个问题。
全 Javascript 解决方案更易于维护和部署。
在以下情况下,可以使用C++模块代替:
- 没有Javascript库可以完成你想要完成的事情。
- 在Javascript中,服务器的这一部分是CPU约束的瓶颈。通常不是这种情况,但媒体处理等方案除外。毕竟,Node.js的设计是基于服务器进程花费大部分时间等待的假设。
由于node-time不是CPU密集型的,并且存在Javascript替代方案,因此我推荐更简单的解决方案,在这种情况下是timezone-js。