use*_*805 86 concurrency erlang multicore node.js
当涉及到它可以处理的并发级别时,我真的很喜欢这些工具.
Erlang看起来是更稳定的解决方案,但需要更多的学习和大量潜入功能语言范例.看起来Erlang在多核CPU方面做得更好(如果我错了就解决我的问题).
但我应该选择哪个?从短期/长期角度来看哪一个更好?
我的目标是学习一种工具,使得在高负载下扩展我的Web项目比传统语言更容易.
Jus*_*ier 86
我会试试Erlang.即使它将是一个更陡峭的学习曲线,你将获得更多,因为你将学习一种函数式编程语言.此外,由于Erlang专门用于创建可靠,高度并发的系统,因此您将学习很多有关同时创建高度可伸缩服务的知识.
Jar*_*sen 50
我不能代表Erlang,但有一些关于节点没有提及的事情:
在实际编写节点的人Ryan Dahl 看看yahoo博客上的视频.我认为这将有助于您更好地了解节点所处的位置以及它的发展方向.
请记住,节点仍处于后期开发阶段,因此一直在进行相当多的更改 - 这些更改已经破坏了早期的代码.但是,据说它可以指望API不会改变太多.所以,如果你正在寻找有趣的东西,我会说节点是一个很好的选择.
dsm*_*ith 15
我是一个长期的Erlang程序员,这个问题促使我看看node.js. 它看起来非常好.
看来您需要生成多个进程才能利用多个核心.我无法看到有关设置处理器关联性的任何信息.你可以在linux上使用taskset,但它可能应该在程序中进行参数化和设置.
我还注意到平台支持可能稍微弱一些.具体来说,看起来您需要在Cygwin下运行以获得Windows支持.
看起来不错.
Node.js现在支持Windows.
我正在为多个项目寻找相同的两种替代方案.
到目前为止,我提出的最好的剃须刀是否需要使用Javascript来决定他们之间的特定项目.我想要迁移的一个现有系统已经用Javascript编写,因此它的下一个版本很可能在node.js中完成.其他项目将在一些Erlang Web框架中完成,因为没有现有的代码库可供迁移.
另一个考虑因素是Erlang可以扩展到多个核心,它可以扩展到整个数据中心.我没有在node.js中看到一个内置机制,它允许我向另一个JS进程发送一条消息而不关心它所在的机器,但是它是在最低级别的Erlang中构建的.如果你的问题不够大,不需要多台机器,或者它不需要多个协作进程,那么这个优势就不大了,所以你应该忽略它.
Erlang确实是一个深入潜水的游泳池.我建议您在开始构建Web应用程序之前先编写一个独立的功能程序.更简单的第一步,因为您似乎对Javascript感到满意,就是尝试以更实用的方式编写JS.如果您使用jQuery或Prototype,那么您已经开始使用这条路径了.尝试在Erlang中的纯函数式编程或其中一个(Haskell,F#,Scala ...)和函数JS之间进行反弹.
一旦您对函数式编程感到满意,请找出许多Erlang Web框架之一; 你可能不应该把你的应用程序直接写入低级别的东西,就像inets在这个晚期阶段.例如,看看像氮这样的东西.
虽然我个人会选择Erlang,但我承认我对JavaScript有点偏见.我的建议是你评估几点:
Erlang具有非常精细的并发性和网络透明的并行分布式系统.根据项目的确切内容,这种系统的成熟实施的可用性可能超过学习新语言的任何问题.还有另外两种语言适用于你可以使用的Erlang VM,类似Ruby/Python的Reia和Lisp-Flavored Erlang.
另一个选择是使用两者,特别是将Erlang用作"中心".我不确定Node.js是否具有外部函数接口系统,但如果有,则Erlang具有C库,用于外部进程与系统接口,就像任何其他Erlang进程一样.
看来,Erlang在较低端服务器(512MB 4核2.4GHz AMD VM)中的部署性能更好。这是根据SyncPad比较其虚拟白板服务器应用程序的Erlang和Node.js实现的经验得出的。
| 归档时间: |
|
| 查看次数: |
28098 次 |
| 最近记录: |