我正在开发的应用程序在桌面环境上运行。在后端,它运行C ++。前端是用户可修改的,并使用JavaScript编写,该JavaScript使用了C ++中一些公开的类/函数。
我目前正在尝试确定应用程序是否应该仅单独运行v8才能运行JavaScript代码,或者是否应该“升级”为使用NodeJS。升级的好处是可以访问过多的Node模块,用户可以依赖它们内置和第三方。但是,我担心由于Node带来的额外负担,JavaScript的性能可能会受到阻碍。
也许最好在C ++后端中通过自己版本的最常见Node模块来实现并将它们公开给JS?还是它们将没有无关紧要/没有任何性能差异?
答案 0 :(得分:2)
基于NodeJS构建不会导致明显的性能损失。但是,它可能会引入可维护性损失和安全性损失。 NodeJS可能具有您在应用程序中未使用的许多功能。它可能具有您实际上不希望Javascript作者访问的功能。您是否在高安全性环境中运行?您可能希望限制Javascript作者对文件系统和网络的访问。如果您在应用程序中运行第三方不受信任的代码,并且您的应用程序在单独的第三方系统上运行,则肯定会考虑安全问题。在这种情况下,直接针对V8构建将是一个更好的选择。