首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将更快的语言与Express.js后端集成?

如何将更快的语言与Express.js后端集成?
EN

Stack Overflow用户
提问于 2015-09-04 02:05:57
回答 1查看 108关注 0票数 1

一些背景:,我目前正在一个运行在Azure服务器上的网站上工作。它本质上是一个奇怪的平均堆栈,因为MongoDB部分被DocumentDB取代,这是Azure的原生NoSql DB。

站点的输出需要大量的恒数运算,而且随着站点的增长,JavaScript被证明太慢了。所以,

  1. 如果我使用node-gyp C++ 编译成 Javascript ,那么代码最终是否以Javascript的形式运行,并降低了使用C++的速度效益?
  2. 作为一种计算工作,Java是可行的替代方案吗?这是在计算速度、内存使用和必须与Javascript通信方面。

一些附加信息:

  • 该网站不断从一个铬插件中提取信息,并将其输入数字计算器。
  • 要计算的值包括浮点数、整数、字符串和布尔值,这些值来自DB和正在运行的值,以及写入DB。

请不要建议使用C#代替Java。我知道它已经很好地集成到Azure中了,但是我没有使用它,也没有时间去学习。

编辑:问一个更好的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-07 06:39:23

NodeJS使用事件驱动的单进程/线程模型。它不适用于CPU密度的计算。当您有一个数字处理器花费大量的cpu时间在一个事件请求,事件循环的节点将被阻塞。

因此,如果您需要进行CPU密度计算,我认为您可以使用Node 'child_process.spawn‘作为工作人员发送子进程。您可以参考process.html

对于NodeJS来说,有一些简单的库比API "child_process“做得更好。

  1. 节点-计算-集群:跨多个进程的分布式计算( https://github.com/lloyd/node-compute-cluster )
  2. 神经元:最简单的事件驱动作业管理器、FIFO队列和“基于任务的缓存”https://github.com/flatiron/neuron

如果您只需要后台作业,我建议您在Azure上使用WebJob & ServiceBus。请参考https://azure.microsoft.com/en-us/documentation/articles/web-sites-create-web-jobs/https://azure.microsoft.com/en-us/documentation/articles/service-bus-nodejs-how-to-use-queues/

当然,您可以使用Java( Java上的WebJob )作为计算工作,也可以在Azure上使用ServiceBus与NodeJS通信。

如果您需要大量的数字计算,我认为使用NumPy的Python可能是最好的语言选择。

如果您需要一些实时性能要求,则需要根据我的经验添加更多实例来扩展节点服务。

诚挚的问候。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32389015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档