Erlang 18RC1 發布
原文 http://blog.yufeng.info/archives/3193
三月底,官網宣布Erlang 18RC1公測,參看 這里 ,按照慣例Erlang每年會出一個大版本,從R11開始到現在R18,7年時間我從Erlang的發展歷程中見證了一個大型系統的演變過程。
Erlang/OTP 18.0-rc1 is available for testing.This is an alpha release, which will be followed by a planned beta release in May and a final OTP 18.0 product release in June 2015.
18.0正式版本6月份會放出, 這個版本很值得期待的內容有以下幾點, 參看 News From the OTP TEAM Berlin Erlang Factory Lite 2014
重點需要解決的:
當期亮點:

長期的:

對于這次預發布最大的亮點如下:
Some highlights of the release are:
dialyzer: The -dialyzer() attribute can be used for suppressing warnings in a module by specifying functions or warning options. It can also be used for requesting warnings in a module.erts: The time functionality has been extended. This includes a new API for time, as well as “time warp” modes which alters the behavior when system time changes. You are strongly encouraged to use the new API instead of the old API based on erlang:now/0. erlang:now/0 has been deprecated since it will always be a scalability bottleneck. For more information see the Time and Time Correction chapter of the ERTS User’s Guide. Here is a link http://www.erlang.org/documentation/doc-7.0-rc1/erts-7.0/doc/html/time_correction.html
erts: Beside the API changes and time warp modes a lot of scalability and performance improvements regarding time management has been made. Examples are:
scheduler specific timer wheels,
scheduler specific BIF timer management,
parallel retrieval of monotonic time and system time on OS:es that support it.
erts: The previously introduced “eager check I/O” feature is now enabled by default.
erts/compiler: enhanced support for maps. Big maps new uses a HAMT (Hash Array Mapped Trie) representation internally which makes them more efficient. There is now also support for variables as map keys.
ssl: Remove default support for SSL-3.0 and added padding check for TLS-1.0 due to the Poodle vulnerability.
ssl: Remove default support for RC4 cipher suites, as they are consider too weak.
stdlib: Allow maps for supervisor flags and child specs
其中對定時器的API語義和使用方式做了重新定義,伸縮能力優化做了大量的工作,拆成基于每個調度器的,對于定時器密集型的業務會有很大的性能提升。
具體的參考:Erlang VM Developer Lukas Larsson 做的 演講
這次解決了定時器的瓶頸,個人最期待的是Multiple poll sets, 這個解決了,性能就完美了!