我需要撰写一个实现一些模糊逻辑的服务器程序,并选择使用Node.js编写以利用其事件导向性。 我需要处理困难的数学计算问题,但不知道获得最佳性能的最好方法:
- 全部使用Node.js 并利用V8引擎的功能来完成数学任务。
- 在C ++中编写模块 实现所有数学函数并从Node中调用它。
有没有人在这两个平台上进行过此类计算的经验?
我需要撰写一个实现一些模糊逻辑的服务器程序,并选择使用Node.js编写以利用其事件导向性。 我需要处理困难的数学计算问题,但不知道获得最佳性能的最好方法:
有没有人在这两个平台上进行过此类计算的经验?
既然您已经需要 Node.js 部分,那么请继续在 Node.js 中实现所有内容。如果运行速度足够快且易于维护,则这很容易。很难预测虚拟机/JIT 编译器的性能。
如果速度不够快,请首先考虑算法的改进。如果这不能解决问题,并且分析显示计算是问题所在,请继续使用 C++ 重新实现。但请注意编写高效的 C++ 代码并非易事。确保您手边有一个好的分析工具,并经常进行测量。
总的来说,如果正确编写,C++ 代码会更快。棘手的部分在于如何正确编写它。请参阅此文章Google Paper on C++, Java, Scala, Go了解更多信息。精髓是——托管语言使编写和维护代码更加容易,但如果需要原始性能,则 C++ 是最佳选择。但它需要大量专业知识,而且代码更难维护。
http://benchmarksgame.alioth.debian.org/u64q/compare.php?lang=node&lang2=gpp
3 秒,用于 nodejs!
6 秒,用于 gcc/clang 编译的 c 语言
6 秒,用于 hhvm ( php )
14 秒,用于带有 opcache 的 php7
15 秒,用于不带 opcache 的 php7
Nodejs 如此之快,是因为它经过编译和优化。
所以,也许你只需要自己测试一下哪种语言最适合你的需求。
以下是Node.js作为完美技术伙伴的领域。
● I/O bound Applications
● Data Streaming Applications
● Data Intensive Real-time Applications (DIRT)
● JSON APIs based Applications
● Single Page Applications
不建议在CPU密集型应用程序中使用Node.js。
以下是API比较: https://www.linkedin.com/pulse/nodejs-vs-java-which-faster-apis-owen-rubel