用在实际项目中用erlang的吗?

41 views
Skip to first unread message

jlbnet

unread,
Apr 15, 2008, 1:17:25 AM4/15/08
to Erlang China
用VC6做了个支持很多tcp长连接的服务器,稳定性一直没搞好,长时间运行下来不知道什么时候就会崩溃,实在是不想再去改了。
关注erlang也有一段时间了,对高并发的特性很看好,想问一下,有谁在实际项目中使用erlang+C来开发的吗?在windows 2000/
xp/2003 平台上,性能怎么样?目前还不考虑跨平台(Unix/linux)。

Linker M Lin

unread,
Apr 23, 2008, 7:18:24 AM4/23/08
to Erlang China
我想Windows开发人员要想适应Erlang的思想还是有一些难度的.

gashero

unread,
Apr 23, 2008, 1:49:23 PM4/23/08
to erlang...@googlegroups.com
性能很夸张的说,呵呵。

我在linux平台,同事用C语言写的引擎,提供stdin/stdout的接口,也就是标准的erlang扩展协议通信。然后我自己用erlang写了个简单的http服务器,每秒钟连查询后端引擎(单线程)带处理http请求,可以完成6000req/s的样子。这个速度仅仅比apache处理纯静态html页面稍微慢一点(6200req/s)。

至于稳定性,我比较看好监督树模型,所以基本不在乎单个线程的稳定性了。

关于跨平台,我还没有计划把这个程序移植到windows上面去,不过估计没什么问题的。

forev...@gmail.com

unread,
Apr 23, 2008, 11:56:35 PM4/23/08
to Erlang China
哦?赞啊,我觉得这是erlang最擅长的事情了,让erlang做网页跟ruby拼开发效率应该不是它的用武之地。

jacky zhao

unread,
Apr 24, 2008, 12:01:51 AM4/24/08
to erlang...@googlegroups.com
呵呵, gashero 的应用方式相当"标准"哦,我的"车库项目0.1"也是如此。

此前 mryufeng 等同学的部分测试已经表明,至少在目前这个阶段 erlang 的性能在"massive computation"方面通常并不具有特别明显的优势。(除非去化大力气做并行优化,此外毕竟 erlang 是 vm 语言,性能有损失也应在预料之中。)但在机器之间做"task scheduling"确实是目前市面上最好用的选项。

此外 port(即pipe,或曰stdin/stdout) 的整合方式也相当符合 unix 风格的审美情趣。最近 joe 老头有一段有意思的话。

For a long, long time I have been pondering the problem of how we glue(software) things together. The simplest of all methods is the unix pipe.
cat foo | grep ... | awk ...| wc
(or whatever)
aside: When people say "parallel programming is difficult!" I guess they weren't thinking of the unix pipe notation - the above is (or course) a parallel program with 4 parallel processes .-)

个人认为,仅就目前而言,以 native 代码来实现每个独立的组件,并将这若干个组件以 port 的形式组装到由 erlang 搭建的系统之中。似乎是实际应用 erlang 时相当实在的模型。所以听到有人说 erlang 是一个"架构语言"时,觉得还怪贴切的。至于说 port 的稳定性问题(我还没实际碰到 crash 的状况),一则有 supervisor 保驾护航,二则如果妥善设计,避免在 port 之中保持状态,应该能够避免它的重启对应用造成影响。

2008/4/24 gashero <harry....@gmail.com>:

Linker

unread,
Apr 24, 2008, 2:22:53 AM4/24/08
to erlang...@googlegroups.com
非常欣赏这种流水线并发模型.
--
Linker M Lin
linker...@gmail.com

jlbnet

unread,
Apr 25, 2008, 12:17:50 AM4/25/08
to Erlang China
开发难度这个是可以克服的,多学习,多实践。反正这个东西就我一个人负责,出问题也是找我,里面要用什么东西就我说了算。
就是看中了erlang的并行,大量线程和监督树,自己能省点事。既然erlang都能在 windows平台上运行,那也就是可以在项目中用的了。不
过有很多方面的问题要解决,象怎么启动,外面的模块以Port 的方式来运行,stdin/stdout在 windows上的效率高不高,还是
erlang单独运行,以单一socket与别的模块通信做起来好,实际开发起来可行吗?
windows下的程序,使用 sqlserver数据库,公司里还没正式用过 linux,一下子转到linux上去开发公司不会同意的,还有部署,
维护的问题,还只能继续在 windows做。
Reply all
Reply to author
Forward
0 new messages