在技术层面上,和erlang otp入门/OTP 相比,Node.js有什么优势

在技术层面上,和Erlang/OTP 相比,Node.js有什么优势_百度知道
在技术层面上,和Erlang/OTP 相比,Node.js有什么优势
我有更好的答案
之前做过这方面的功课,Erlang是可以KO掉 node.js的,当时整理的资料摘录于下:
互联网从来不缺观点,缺少的是数据和事实,下面按照干货的多少推荐几篇文章:
A comparison between Misultin, Mochiweb, Cowboy, NodeJS and Tornadoweb
ostinelli|net
发表时间May 2011
恰如其名,这篇文章比较了 Misultin, Mochiweb, Cowboy, NodeJS and Tornadoweb,看比较图吧,评论也精彩:
socket.io-erlang-vs-nodejs
Papipo/socket.io-erlang-vs-nodejs 路 GitHub
基于socket.io项目做的erlang与node.js的比较
In the webpage that will be displayed when you go to http://localhost:3000, you can set a number of messages to be sent to the server via socket.io.
In my computer nodejs processes ...
其他类似问题
为您推荐:
erlang的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁热门排序 |
个人感觉会超越ruby。这段时间很被elixir吸引,读了一下Programming Elixir 书和Elixir in Action的示意代码。也看了大量elixir相关的视频。当然也写了不少。下面我谈谈感受。&br&&br&elixir的作者是来自rails社区的大牛,我一直觉得rails社区的大牛都是真正懂得做框架的人。elixir给我的感觉是深思熟虑。&br&&ul&&li&拥有一个很小的语言内核,很好的Metaprogramming,易于扩展语言自身,这对于实现好用的库是非常有价值的&br&&/li&&li&Mix是一个非常优秀的项目管理工具,我用过最好的&/li&&li&非常优秀的文档&/li&&li&函数式编程,不变性,pipeline,模式匹配这些特性都是非常棒的,个人感觉可以重塑被面向对象搞坏的编程思维&/li&&li&杀手级框架Phoenix&/li&&li&继承的erlang优秀的性能,otp等,elixir语言也许不能帮你解决分布式的问题,但是提供的工具集绝对会让你解决这些问题轻松很多,强烈推荐读&a href=&///?target=https%3A///sasa1977/elixir-in-action& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&sasa1977/elixir-in-action · GitHub&i class=&icon-external&&&/i&&/a&代码&/li&&li&友好的语法,写起来爽&/li&&li&|& pipeline + 模式匹配 对我的震撼很大,把程序看成数据的迁移和转换的思维方式非常棒:构建系统时把重心放在数据上,程序只是数据的搬运工!&/li&&/ul&本人工作语言是GO, 也很喜欢GO, 但是GO缺少一个Mix,一个Phoenix,一个OTP,表示遗憾!
个人感觉会超越ruby。这段时间很被elixir吸引,读了一下Programming Elixir 书和Elixir in Action的示意代码。也看了大量elixir相关的视频。当然也写了不少。下面我谈谈感受。elixir的作者是来自rails社区的大牛,我一直觉得rails社区的大牛都是真正懂得做…
不可能。&br&&br&语言被广泛接受的程度取决于语言所擅长解决那个问题领域被重视的广泛程度&br&&br&ruby的优势领域是工具和应用系统开发,这不是目前备受关注的领域。&br&&br&erlang的优势领域是高性能网络和大规模分布式系统,前者不是被广泛关注的领域,后者虽然被普遍重视,但由于docker技术降低了分布式系统技术基础设施的门槛(这是erlang最高的技术门槛),erlang系受到了冲击,因此很难再现ruby当年的号召力。
不可能。语言被广泛接受的程度取决于语言所擅长解决那个问题领域被重视的广泛程度ruby的优势领域是工具和应用系统开发,这不是目前备受关注的领域。erlang的优势领域是高性能网络和大规模分布式系统,前者不是被广泛关注的领域,后者虽然被普遍重视,但由于…
Ruby 有Rails,有各种各样好用的Gem&br&&br&Elixir有Phoenix,且到现在Phoenix已经0.10了,Rails有的功能都有了,且在快速开发中。&br&且Phoenix,还有长链接的支持,这是Erlang的强项了吧。&br&&br&包 可以看看&a href=&///?target=https%3A//hex.pm/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Hex&i class=&icon-external&&&/i&&/a&,原生Elixir的库可能越来越多,像cowboy这样成熟的web server 直接可以拿来&br&用,比如Phoenix底层就是基于cowboy。&br&&br&还有强大的Eralng VM,OTP&br&&br&Phoenix作者做过一些性能对比 &a href=&///?target=http%3A///blog//elixir-vs-ruby-showdown-phoenix-vs-rails/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Elixir vs Ruby Showdown&i class=&icon-external&&&/i&&/a& ,跑在Erlang VM上的Phoenix性能要&br&好用跑在Ruby上Rails。且Erlang是函数式编程语言,变量不可变,更适合并发,Erlang VM 也是天生支持并发的。&br&&br&语言层面 Elixir 要比Ruby简单(除了宏),Elixir代码写起来也更容易
Ruby 有Rails,有各种各样好用的GemElixir有Phoenix,且到现在Phoenix已经0.10了,Rails有的功能都有了,且在快速开发中。且Phoenix,还有长链接的支持,这是Erlang的强项了吧。包 可以看看,原生Elixir的库可能越来越多,像cowboy这样成熟的web server …
谢邀。&br&&br&其实,我是赞同 Alice 的。&br&都说Elixir重要的是Macro 。&br&&br&我觉得Macro太难,学不会,然后Erlang简单的语法却能满足我各种花式代码的需求。Elixir语法强大,但是和Erlang相比并不能给我带来太多的红利,从工程角度而言,现如今的投入产出比不高。所以,我并没有使用Elixir。&br&&br&但是,Elixir个人却非常喜欢。&br&原因:&br&1、封装更棒&br&比如说Agent和Task,虽然只是简单的语法层面的封装,但是对程序员更加的友好。这样的封装在Elixir中随处可见。&br&2、hex&br&虽然我并没有在生产环境下使用过Elixir,但是偶尔也会小玩一下,Elixir的hex 要比Erlang的rebar、relx、erlang.mk 好用很多,当然,这也不是同一个层面上的东西。但是Elixir对于package的管理要比Erlang好很多,这一点还是得到很多人认可的。&br&3、促进Erlang生态&br&Elixir的本质是EVM,Elixir发展必然会反过来促进Erlang的发展,释放EVM的威力。一个很小的e.g. ,Erlang新的随机数module rand,在Elixir最新的版本中,已经取代了random。&br&&br&感谢Elixir,让更多的人了解到EVM。&br&&br&至于Alice说的『难』,我猜测,可能是Macro部分吧,如果仅仅是把Elixir当做是封装更好的Erlang来用,我觉得还是很简单的。但是一旦Macro之后, &a data-hash=&94b1cf389be371c5c820a0& href=&///people/94b1cf389be371c5c820a0& class=&member_mention& data-tip=&p$b$94b1cf389be371c5c820a0&&@falood&/a&
的Maru 我已然看不懂了。
谢邀。其实,我是赞同 Alice 的。都说Elixir重要的是Macro 。我觉得Macro太难,学不会,然后Erlang简单的语法却能满足我各种花式代码的需求。Elixir语法强大,但是和Erlang相比并不能给我带来太多的红利,从工程角度而言,现如今的投入产出比不高。所以,我…
谢 &a data-hash=&dcddeadcb515f393fe29575& href=&///people/dcddeadcb515f393fe29575& class=&member_mention& data-editable=&true& data-title=&@bhuztez& data-tip=&p$b$dcddeadcb515f393fe29575&&@bhuztez&/a& 邀&br&&br&说Elixir语法太难理解有点过分, confusing倒是有一点.&br&&br&Elixir皮是Ruby, 骨子里是Lisp, 这种语言的特点是语言由好些基本的specialform构成, 别的东西用宏在上面构建各种语法元素&br&&br&理解Elixir的语法, 注意几个点就好&br&1. 函数调用的括号在多数的情况可以省略&br&&div class=&highlight&&&pre&&code class=&language-elixir&&&span class=&n&&to_string&/span& &span class=&mi&&1&/span&
&span class=&c1&&# =& &1&&/span&
&span class=&c1&&# 不能忽略的情况: 匿名函数&/span&
&span class=&p&&(&/span&&span class=&k&&fn&/span& &span class=&n&&x&/span& &span class=&o&&-&&/span& &span class=&n&&x&/span& &span class=&o&&+&/span& &span class=&mi&&1&/span& &span class=&k&&end&/span&&span class=&p&&)&/span& &span class=&mi&&1&/span& &span class=&c1&&# 挂&/span&
&span class=&p&&(&/span&&span class=&k&&fn&/span& &span class=&n&&x&/span& &span class=&o&&-&&/span& &span class=&n&&x&/span& &span class=&o&&+&/span& &span class=&mi&&1&/span& &span class=&k&&end&/span&&span class=&p&&)&/span&&span class=&o&&.&/span&&span class=&p&&(&/span&&span class=&mi&&1&/span&&span class=&p&&)&/span& &span class=&c1&&# =& 2&/span&
&span class=&c1&&# |& 运算符右边的函数调用里不能忽略括号, Elixir 1.2后会报warning&/span&
&span class=&mi&&1&/span& &span class=&o&&|&&/span& &span class=&p&&(&/span&&span class=&o&&&&/span&&span class=&p&&(&/span&&span class=&ni&&&1&/span& &span class=&o&&+&/span& &span class=&mi&&1&/span&&span class=&p&&))&/span& &span class=&c1&&# 挂&/span&
&span class=&mi&&1&/span& &span class=&o&&|&&/span& &span class=&p&&(&/span&&span class=&o&&&&/span&&span class=&p&&(&/span&&span class=&ni&&&1&/span& &span class=&o&&+&/span& &span class=&mi&&1&/span&&span class=&p&&))&/span&&span class=&o&&.&/span&&span class=&p&&()&/span& &span class=&c1&&# =& 2&/span&
&/code&&/pre&&/div&2. keyword lists 语法糖, keyword list的花括号跟方括号在某些情况是可选的&br&&div class=&highlight&&&pre&&code class=&language-elixir&&&span class=&n&&list&/span& &span class=&o&&=&/span& &span class=&p&&[{&/span&&span class=&ss&&:a&/span&&span class=&p&&,&/span& &span class=&mi&&1&/span&&span class=&p&&},&/span& &span class=&p&&{&/span&&span class=&ss&&:b&/span&&span class=&p&&,&/span& &span class=&mi&&2&/span&&span class=&p&&}]&/span&
&span class=&c1&&# =& [a: 1, b: 2]&/span&
&span class=&c1&&# 构造的语法糖&/span&
&span class=&n&&list&/span& &span class=&o&&==&/span& &span class=&p&&[&/span&&span class=&ss&&a&/span&&span class=&p&&:&/span& &span class=&mi&&1&/span&&span class=&p&&,&/span& &span class=&ss&&b&/span&&span class=&p&&:&/span& &span class=&mi&&2&/span&&span class=&p&&]&/span&
&span class=&c1&&# =& true&/span&
&span class=&k&&if&/span& &span class=&no&&false&/span&&span class=&p&&,&/span& &span class=&ss&&do&/span&&span class=&p&&:&/span& &span class=&ss&&:this&/span&&span class=&p&&,&/span& &span class=&ss&&else&/span&&span class=&p&&:&/span& &span class=&ss&&:that&/span&
&span class=&c1&&# =& :that&/span&
&span class=&k&&if&/span&&span class=&p&&(&/span&&span class=&no&&false&/span&&span class=&p&&,&/span& &span class=&p&&[&/span&&span class=&ss&&do&/span&&span class=&p&&:&/span& &span class=&ss&&:this&/span&&span class=&p&&,&/span& &span class=&ss&&else&/span&&span class=&p&&:&/span& &span class=&ss&&:that&/span&&span class=&p&&])&/span&
&span class=&c1&&# =& :that&/span&
&span class=&c1&&# 微妙的坑:&/span&
&span class=&p&&%{&/span&&span class=&s2&&&k&&/span&&span class=&p&&:&/span& &span class=&mi&&1&/span&&span class=&p&&}&/span&
&span class=&c1&&# =& %{k: 1}&/span&
&span class=&p&&%{&/span&&span class=&s2&&&k&&/span& &span class=&o&&=&&/span& &span class=&mi&&1&/span&&span class=&p&&}&/span&
&span class=&c1&&# =& %{&k& =& 1}&/span&
&span class=&p&&%{&/span&&span class=&ss&&k&/span&&span class=&p&&:&/span& &span class=&mi&&1&/span&&span class=&p&&}&/span&
&span class=&c1&&# =& %{k: 1}&/span&
&/code&&/pre&&/div&&br&最后, Erlang的Parse Transforms能&b&方便&/b&的搞DSL木?&br&&br&回头再更 (
邀说Elixir语法太难理解有点过分, confusing倒是有一点.Elixir皮是Ruby, 骨子里是Lisp, 这种语言的特点是语言由好些基本的specialform构成, 别的东西用宏在上面构建各种语法元素理解Elixir的语法, 注意几个点就好1. 函数调用的括号在多数的情况…
迷惑的应该不是语法吧。&br&&br&我真正学过的第一个语言是 Ruby, 觉得 Ruby 的方方面面很亲切,很习惯,&br&但是我知道很多人把 Ruby 中很多普通、自然的东西描述的很玄幻。&br&&br&迷惑的是某些更深层次的东西,我觉得可以用 style, philosophy, best practice &br&来描述更加有意义。&br&&br&ps: Elixir 算是 Rubyist 的福利了。 会了 Ruby, 懂点递归,Elixir 就可以开始搞了,应该无压力。
迷惑的应该不是语法吧。我真正学过的第一个语言是 Ruby, 觉得 Ruby 的方方面面很亲切,很习惯,但是我知道很多人把 Ruby 中很多普通、自然的东西描述的很玄幻。迷惑的是某些更深层次的东西,我觉得可以用 style, philosophy, best practice 来描述更加有意…
非也!我们rds中间层、分布式事务和部分管控都用erlang实现的,运行几年下来在性能,稳定性,热升级和服务隔离方面有巨大的优势,是产品的核心竞争力。由于我们的产品对erlang要求非常高,所以比较倾向内部培养。最近也会发起一轮针对erlang的活动和招聘,欢迎大家加入!
非也!我们rds中间层、分布式事务和部分管控都用erlang实现的,运行几年下来在性能,稳定性,热升级和服务隔离方面有巨大的优势,是产品的核心竞争力。由于我们的产品对erlang要求非常高,所以比较倾向内部培养。最近也会发起一轮针对erlang的活动和招聘,…
在RDS写Erlang是不是经常在改Erlang自身的源码…
在RDS写Erlang是不是经常在改Erlang自身的源码…
我之前也比较纠结这个问题,所以维护了一个Erlang资讯站:
&a href=&///?target=http%3A///204209/widget/miniblog//& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Erlang 广播站
(豆瓣)&i class=&icon-external&&&/i&&/a&&br&会人肉聚合Erlang相关的RSS博文,社交媒体,书讯,新闻,开源项目等等&br&你也会看到少量Elixir,Clojure,Lisp的信息;&br&&br&这个小站是非盈利的,几个管理员维护这个小站全凭爱&br&&br&附:&br&&a href=&///?target=http%3A///me-sa/p/erlang_resources_1_6.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[Erlang 0105] Erlang Resources 小站 2013年1月~6月资讯合集&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=http%3A///me-sa/p/erlang_resources_7_12.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[Erlang 0114] Erlang Resources 小站 2013年7月~12月资讯合集&i class=&icon-external&&&/i&&/a&
我之前也比较纠结这个问题,所以维护了一个Erlang资讯站: 会人肉聚合Erlang相关的RSS博文,社交媒体,书讯,新闻,开源项目等等你也会看到少量Elixir,Clojure,Lisp的信息;这个小站是非盈利的,几个管理员维护这个小站全凭爱附:
官方网站上的An Erlang Course就挺好的。废话也很少。一会儿就看完了嘛。虽然内容有点老了,但总的来说还是很好的嘛。&br&&br&&a href=&///?target=http%3A//www.erlang.org/course/course.html& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&erlang.org/course/cours&/span&&span class=&invisible&&e.html&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&
官方网站上的An Erlang Course就挺好的。废话也很少。一会儿就看完了嘛。虽然内容有点老了,但总的来说还是很好的嘛。
&ol&&li&一般初学的看programming erlang ,erlang programming ,还有learn you some erlang 就可以了。这些我都看过。然后再看看opt in action,不过其实到了这个时候看文档就好了,btw erlang的文档水很深。森马都有,但是有时候确实不太好找到想要的东西。&br&&/li&&li&坚强 跟 淘宝的余峰的博客我以前一直有看,顺便推荐一下。 &/li&&li&推荐先看joe armstrong 写的那本。当时就是看了这本书,然后开始喜欢erlang。一两天就能大概看完。&br&&/li&&li&推荐一个网站,你会找到你以后想要的资源&a href=&///?target=http%3A///get/erlang& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Erlang | getAwesomeness()&i class=&icon-external&&&/i&&/a& 这是一个awesome 系列的资源站。各种语言的推荐资源。&/li&&li&还有&a href=&///?target=http%3A///get/erlang_bm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Erlang Bookmarks&i class=&icon-external&&&/i&&/a&&/li&&/ol&
一般初学的看programming erlang ,erlang programming ,还有learn you some erlang 就可以了。这些我都看过。然后再看看opt in action,不过其实到了这个时候看文档就好了,btw erlang的文档水很深。森马都有,但是有时候确实不太好找到想要的东西。坚强 …
正好上周研究了相关论文,在这儿介绍一下吧。&br&具体Erlang调度器工作原理相当复杂,单个进程层面、多个调度器层面等都有特定的控制办法。大概可以分为 Erlang抢占式调度、进程资源隔离、进程优先级管理和调度器之间的管理几个部分。&br&&br&&b&1. Erlang 抢占式调度&/b&&br&&br&Erlang实现公平调度基于Reduction Budget(运行次数限制)这一概念。&br&每一个进程(普通和端口)创建时初始reduction budget值为2000,任何Erlang系统众的操作都会消耗部分budget。当budget降低到0,该进程交出CPU使用权,被其他进程抢占。&br&&br&函数调用、调用 BIF、进程堆垃圾回收、ETS 读写、发消息(目标邮箱堆积的消息越多,消耗越大),均会造成budget不同程度减少。例如函数调用,budget -1;发消息,根据对端mail box长度正比减少 。当mailbox长度过大时,budget消耗增加,中止发送消息。&br&&br&&b&2. 进程资源隔离&/b&&br&&br&每个Erlang进程由PCB(进程控制块),stack (存储零散数据和指针信息)以及heap (存储复合数据,例如元组/表单/大整数)组成。 Erlang进程是虚拟机级别的进程,非常轻量,初始化时只有2K左右。 由于Erlang进程资源的隔离性,每个进程的进程内存都会被独立GC,即对单个进程垃圾回收不会STW(stop the world)。&br&Erlang进程的private heap结构设计保证了进程之间的资源隔离,独立的GC保证了尽量少的垃圾回收抖动。当进程退出时,内存直接回收。这些机制都保证了Erlang的高可用性和软实时性。&br&&br&&img src=&/2b2caafd8ec_b.png& data-rawwidth=&692& data-rawheight=&478& class=&origin_image zh-lightbox-thumb& width=&692& data-original=&/2b2caafd8ec_r.png&&&br&&b&3. 进程优先级管理&/b&&br&&br&上文提到Erlang调度器基于 Reduction Budget=2000的原理。当进程的reduction quantum被消耗完毕,或者进入wait状态,则进程停止。&br&每个调度器拥有3条队列,分别为:最大优先级队列,高优先级队列,正常+低优先级队列。接口(ports)另有一条队列。Run queue length即每条队列内进程或接口的数量,其值是进程分配migration的依据之一。为了确保每个进程分配时间均匀和按顺序执行,Erlang采用 Round-Robin算法。&br&&br&&b&4. 调度器之间的管理&/b&&br&&br&调度器的另一个重要功能为通过跨进程/跨核的work sharing/stealing来平衡负载。&br&在每个balance check周期内,其中一个调度器(简称Scheduler A)会审查所有其他调度器的负载情况,以此决定下个周期的活跃调度器数量。同时,Scheduler A计算出迁移限制量 (migration limit),即每个优先级队列可以支撑的迁移进程/接口数量。除此之外,Scheduler A也会给出迁移路线。&br&在迁移和执行关系确定之后,活跃和非活跃的调度器之间通过其工作状态互相转换。例如,当系统全速运转时,拥有较少工作量的调度器将承担主要执行任务。下图为调度器的状态转换规则。&br&&img src=&/95698aa34faa00bef2dcf8_b.png& data-rawwidth=&584& data-rawheight=&712& class=&origin_image zh-lightbox-thumb& width=&584& data-original=&/95698aa34faa00bef2dcf8_r.png&&正是通过极其精密的调度系统,Erlang能够保证在各种极端环境下真正执行抢占式多任务处理,精细化实现软实时概念。这在我们调研的多种语言中是最适用于高并发软实时场景的。其他基于协作的语言和系统,包括node.js, go, python等都无法与之匹敌。&br&&br&列举皮毛,还望轻喷。&br&&b&参考资料:&/b&&br&1. &a href=&///?target=http%3A//q.com/cn/presentations/large-scale-real-time-system-based-on-erlang-otp/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&基于 Erlang/OTP 构建大规模实时系统&i class=&icon-external&&&/i&&/a&&br&2. Characterizing the scalability of Erlang VM
正好上周研究了相关论文,在这儿介绍一下吧。具体Erlang调度器工作原理相当复杂,单个进程层面、多个调度器层面等都有特定的控制办法。大概可以分为 Erlang抢占式调度、进程资源隔离、进程优先级管理和调度器之间的管理几个部分。1. Erlang 抢占式调度Erlan…
Erlang调度器还是比较复杂的。现在更加倾向于从otp17开始读,老的otp16的代码就仅作参考吧。代码主要是在erts/emulator/beam,但是比如inet等是以driver的形式引入beam的。&br&1. 调度器的理解,私下里以为无非就是基本的进程概念+PCB的结构+调度过程。由于Erlang的Process的特殊性,这边还是重新看一下吧。其次,就是进程的创建过程(erts/emulator/beam/erl_process.c)。其次就是进程的调度机制了。Erlang的进程调度有三种模型(单调度器单队列,多调度器单队列,多调度器多队列)。中间涉及到process优先级,reduction的概念和如何使用(主要还是要多多观察reduction的减少在调用nif/bif还有纯erlang函数的时候的不同),还有就是任务队列的调度器迁移。中间穿插这还有Erlang的消息发送的模型和GC的机制。主要是参考这篇论文&a href=&///?target=http%3A//kth.diva-portal.org/smash/get/diva2%3A392243/FULLTEXT01& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&kth.diva-portal.org/sma&/span&&span class=&invisible&&sh/get/diva2:392243/FULLTEXT01&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&2. 优化我就不拾人牙慧了。但是学习我主要还是参考了What's App的rick的两篇slide,[1]efsf2012-whatsapp-scaling, [2reed-efsf2013-whatsapp]。 在开始的阶段,看了些中文的中文资料,看了不少余锋和坚强2002的blog。&br&3. O'Reilly新书
&a class=& wrap external& href=&///?target=http%3A///product/8.do%3Fsortby%3DbestSellers& target=&_blank& rel=&nofollow noreferrer&&The Erlang Run-Time System - O'Reilly Media&i class=&icon-external&&&/i&&/a&
Erlang调度器还是比较复杂的。现在更加倾向于从otp17开始读,老的otp16的代码就仅作参考吧。代码主要是在erts/emulator/beam,但是比如inet等是以driver的形式引入beam的。1. 调度器的理解,私下里以为无非就是基本的进程概念+PCB的结构+调度过程。由于Erla…
&a href=&///?target=http%3A///blog/1482175& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/blog/&/span&&span class=&invisible&&1482175&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&
已有帐号?
无法登录?
社交帐号登录在技术层面上,和Erlang/OTP 相比,Node.js有什么优势_百度知道
在技术层面上,和Erlang/OTP 相比,Node.js有什么优势
我有更好的答案
虽然从语法层次上看不出有大语种线程的痕迹,但是底层在IO处理上还是用的那些epoll那些异步io技术,不过从底层上来看,相信选择这么语言的人会很少Erlang没有用过。 但是Erlang这门语言太复杂了,主要着力点还是处理IO上
其他类似问题
为您推荐:
erlang的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁在技术层面上,和Erlang/OTP 相比,Node.js有什么优势_百度知道
在技术层面上,和Erlang/OTP 相比,Node.js有什么优势
提问者采纳
不过从底层上来看。但是Erlang这门语言太复杂了,主要着力点还是处理IO上Erlang没有用过,相信选择这么语言的人会很少,虽然从语法层次上看不出有大语种线程的痕迹,但是底层在IO处理上还是用的那些epoll那些异步io技术
其他类似问题
为您推荐:
erlang的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 erlang otp 安装 的文章

 

随机推荐