Erlang/OTP 18.1.5 发布下载

oschina
 oschina
发布于 2015年11月28日
收藏 7

Erlang/OTP 18.1.5 发布,此版本把 ssh 升级到 ssh 4.1.3 版本。

下载:

https://github.com/erlang/otp/archive/OTP-18.1.5.zip

Erlang是一个结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此非常适 合于构建分布式,实时软并行计算系统。

使用Erlang编写出的应用运行时通常由成千上万个轻量级进程组成,并通过消息传递相互通讯。进程间上下文切换对于Erlang来说仅仅 只是一两个环节,比起C程序的线程切换要高效得多得多了。

使用Erlang来编写分布式应用要简单的多,因为它的分布式机制是透明的:对于程序来说并不知道自己是在分布式运行。

Erlang运行时环境是一个虚拟机,有点像Java虚拟机,这样代码一经编译,同样可以随处运行。它的运行时系统甚至允许代码在不被中断 的情况下更新。另外如果你需要更高效的话,字节代码也可以编译成本地代码运行。

Yaws: 一个Erlang写的服务器,据说并发能是apache的15倍

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Erlang/OTP 18.1.5 发布下载
加载中

最新评论(9

eechen
eechen
@棒子面er 热部署的目的是什么?就是在不中断服务的前期下更新代码,基于一次请求一次生命周期的运行特征,PHP能轻松做到热部署。而某些人非要以Erlang为热部署的标杆,却忽略热部署的最终目的,真是可笑。

http://php.net/apc
PHP当然是脚本,没有把编译和执行分离,就是为了修改即生效便于更新和部署的特性。比如APC这个PECL扩展,就可以用apc_compile_file调用zend_compile_file编译脚本生成脚本的opcodes指令,然后可以用apc_bin_dumpfile导出内存脚本opcodes指令对应的二进制文件,应用启动时则可以用apc_bin_loadfile载入这些页面对应的二进制文件。官方开源ZendOpcache后,鸟哥等人就放弃APC转而维护ZendOpcache了,但ZendOpcache只提供了opcache_compile_file编译脚本的功能,却没有提供导出和导入的功能,可见PHP官方并不像为了把编译和执行分离牺牲掉修改即生效的动态脚本的特性。
棒子面er
棒子面er
PHP不就是一脚本嘛!脚本!!
棒子面er
棒子面er

引用来自“eechen”的评论

热部署在PHP里实在太简单了,修改代码就能生效,就是简单就是快.
PHP可以在运行时编译并在内存中缓存opcode来提升性能.
PHP FastCGI进程管理器PHP-FPM的架构:
一个master进程,支持多个pool,每个pool由master进程监听不同的端口,pool中有多个worker进程.
每个worker进程都内置PHP解释器,并且进程常驻后台,支持prefork动态增加.
每个worker进程支持配置响应指定请求数后自动重启,master进程会重启挂掉的worker进程.
每个worker进程能保持一个到MySQL/Memcached/Redis的持久连接,实现"连接池",避免重复建立连接,对程序透明.
master进程采用epoll模型异步接收和分发请求,listen监听端口,epoll_wait等待连接,
然后分发给对应pool里的worker进程,worker进程accpet请求后poll处理连接,
如果worker进程不够用,master进程会prefork更多进程,
如果prefork达到了pm.max_children上限,worker进程又全都繁忙,
这时master进程会把请求挂起到连接队列backlog里(默认值是511).

引用来自“mingshun”的评论

想了解一下,在 PHP 里,如果正在运行的代码被修改了,是即刻生效还是要等下次执行这段代码的时候才会生效?

引用来自“回去干活”的评论

php跟本不是热部署,程序的生命周期都结束了.又重新启新.这算哪门子的热部署.
真正的热部署是应用程序没有结束,还能热更代码.这个目前只有erlang是做的最好的.
正解!
eechen
eechen

引用来自“eechen”的评论

热部署在PHP里实在太简单了,修改代码就能生效,就是简单就是快.
PHP可以在运行时编译并在内存中缓存opcode来提升性能.
PHP FastCGI进程管理器PHP-FPM的架构:
一个master进程,支持多个pool,每个pool由master进程监听不同的端口,pool中有多个worker进程.
每个worker进程都内置PHP解释器,并且进程常驻后台,支持prefork动态增加.
每个worker进程支持配置响应指定请求数后自动重启,master进程会重启挂掉的worker进程.
每个worker进程能保持一个到MySQL/Memcached/Redis的持久连接,实现"连接池",避免重复建立连接,对程序透明.
master进程采用epoll模型异步接收和分发请求,listen监听端口,epoll_wait等待连接,
然后分发给对应pool里的worker进程,worker进程accpet请求后poll处理连接,
如果worker进程不够用,master进程会prefork更多进程,
如果prefork达到了pm.max_children上限,worker进程又全都繁忙,
这时master进程会把请求挂起到连接队列backlog里(默认值是511).

引用来自“mingshun”的评论

想了解一下,在 PHP 里,如果正在运行的代码被修改了,是即刻生效还是要等下次执行这段代码的时候才会生效?
PHP里所有的量的生命周期都在一个请求里面,所以当然是下一个请求再次执行被更改的脚本时生效.
回去干活
回去干活

引用来自“eechen”的评论

热部署在PHP里实在太简单了,修改代码就能生效,就是简单就是快.
PHP可以在运行时编译并在内存中缓存opcode来提升性能.
PHP FastCGI进程管理器PHP-FPM的架构:
一个master进程,支持多个pool,每个pool由master进程监听不同的端口,pool中有多个worker进程.
每个worker进程都内置PHP解释器,并且进程常驻后台,支持prefork动态增加.
每个worker进程支持配置响应指定请求数后自动重启,master进程会重启挂掉的worker进程.
每个worker进程能保持一个到MySQL/Memcached/Redis的持久连接,实现"连接池",避免重复建立连接,对程序透明.
master进程采用epoll模型异步接收和分发请求,listen监听端口,epoll_wait等待连接,
然后分发给对应pool里的worker进程,worker进程accpet请求后poll处理连接,
如果worker进程不够用,master进程会prefork更多进程,
如果prefork达到了pm.max_children上限,worker进程又全都繁忙,
这时master进程会把请求挂起到连接队列backlog里(默认值是511).

引用来自“mingshun”的评论

想了解一下,在 PHP 里,如果正在运行的代码被修改了,是即刻生效还是要等下次执行这段代码的时候才会生效?
php跟本不是热部署,程序的生命周期都结束了.又重新启新.这算哪门子的热部署.
真正的热部署是应用程序没有结束,还能热更代码.这个目前只有erlang是做的最好的.
mingshun
mingshun

引用来自“eechen”的评论

热部署在PHP里实在太简单了,修改代码就能生效,就是简单就是快.
PHP可以在运行时编译并在内存中缓存opcode来提升性能.
PHP FastCGI进程管理器PHP-FPM的架构:
一个master进程,支持多个pool,每个pool由master进程监听不同的端口,pool中有多个worker进程.
每个worker进程都内置PHP解释器,并且进程常驻后台,支持prefork动态增加.
每个worker进程支持配置响应指定请求数后自动重启,master进程会重启挂掉的worker进程.
每个worker进程能保持一个到MySQL/Memcached/Redis的持久连接,实现"连接池",避免重复建立连接,对程序透明.
master进程采用epoll模型异步接收和分发请求,listen监听端口,epoll_wait等待连接,
然后分发给对应pool里的worker进程,worker进程accpet请求后poll处理连接,
如果worker进程不够用,master进程会prefork更多进程,
如果prefork达到了pm.max_children上限,worker进程又全都繁忙,
这时master进程会把请求挂起到连接队列backlog里(默认值是511).
想了解一下,在 PHP 里,如果正在运行的代码被修改了,是即刻生效还是要等下次执行这段代码的时候才会生效?
Kabie
Kabie

引用来自“eechen”的评论

Apache 2.4默认的event MPM是epoll事件驱动的多进程多线程架构,
每个进程包含多个工作线程,每个线程epoll异步处理请求.
Erlang写的Yaws并发性能能是Apache的15倍?
这是什么黑科技?还是吹牛不打草稿.
9年前的事。。。链接都失效了……
eechen
eechen
热部署在PHP里实在太简单了,修改代码就能生效,就是简单就是快.
PHP可以在运行时编译并在内存中缓存opcode来提升性能.
PHP FastCGI进程管理器PHP-FPM的架构:
一个master进程,支持多个pool,每个pool由master进程监听不同的端口,pool中有多个worker进程.
每个worker进程都内置PHP解释器,并且进程常驻后台,支持prefork动态增加.
每个worker进程支持配置响应指定请求数后自动重启,master进程会重启挂掉的worker进程.
每个worker进程能保持一个到MySQL/Memcached/Redis的持久连接,实现"连接池",避免重复建立连接,对程序透明.
master进程采用epoll模型异步接收和分发请求,listen监听端口,epoll_wait等待连接,
然后分发给对应pool里的worker进程,worker进程accpet请求后poll处理连接,
如果worker进程不够用,master进程会prefork更多进程,
如果prefork达到了pm.max_children上限,worker进程又全都繁忙,
这时master进程会把请求挂起到连接队列backlog里(默认值是511).
eechen
eechen
Apache 2.4默认的event MPM是epoll事件驱动的多进程多线程架构,
每个进程包含多个工作线程,每个线程epoll异步处理请求.
Erlang写的Yaws并发性能能是Apache的15倍?
这是什么黑科技?还是吹牛不打草稿.
返回顶部
顶部