Archive

Posts Tagged ‘Erts’

Erlang 18RC1释出

April 1st, 2015 1 comment

原创文章,转载请注明: 转载自系统技术非业余研究

本文链接地址: Erlang 18RC1释出

三月底,官网宣布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

重点需要解决的:
f1
当期亮点:
f2

长期的:
f3

对于这次预发布最大的亮点如下:

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, 这个解决了,性能就完美了!

祝玩的开心!

Post Footer automatically generated by wp-posturl plugin for wordpress.

Categories: Erlang探索, 源码分析 Tags: , ,

ECUG2010分享:C1000K高性能服务器构架技术

October 18th, 2010 3 comments

原创文章,转载请注明: 转载自系统技术非业余研究

本文链接地址: ECUG2010分享:C1000K高性能服务器构架技术

Read more…

Post Footer automatically generated by wp-posturl plugin for wordpress.

How to Build a Debug Enabled Erlang RunTime System

May 7th, 2010 1 comment

原创文章,转载请注明: 转载自系统技术非业余研究

本文链接地址: How to Build a Debug Enabled Erlang RunTime System

很多朋友在问如何调试Erlang的驱动代码等等,其实otp源码下的INSTALL.md写的很清楚, 摘抄下:
How to Build a Debug Enabled Erlang RunTime System
————————————————–

After completing all the normal building steps described above a debug
enabled runtime system can be built. To do this you have to change
directory to `$ERL_TOP/erts/emulator`.
注:一定要注意这句话, 假设你现在在otp源码目录下,正常编译好了, export ERL_TOP=`pwd` 然后进入erts/emulator目录下

In this directory execute:

$ make debug FLAVOR=$FLAVOR

where `$FLAVOR` is either `plain` or `smp`. The flavor options will
produce a beam.debug and beam.smp.debug executable respectively. The
files are installed along side with the normal (opt) versions `beam.smp`
and `beam`.

To start the debug enabled runtime system execute:

$ $ERL_TOP/bin/cerl -debug

The debug enabled runtime system features lock violation checking,
assert checking and various sanity checks to help a developer ensure
correctness. Some of these features can be enabled on a normal beam
using appropriate configure options.

There are other types of runtime systems that can be built as well
using the similar steps just described.

$ make $TYPE FLAVOR=$FLAVOR

where `$TYPE` is `opt`, `gcov`, `gprof`, `debug`, `valgrind`, or `lcnt`.
These different beam types are useful for debugging and profiling
purposes.

祝玩的开心!

Post Footer automatically generated by wp-posturl plugin for wordpress.

Categories: Erlang探索 Tags: , ,

Erlang ERTS Async基础设施

March 24th, 2010 Comments off

原创文章,转载请注明: 转载自系统技术非业余研究

本文链接地址: Erlang ERTS Async基础设施

其实Erts的Async做的很不错的, 相当的完备, 性能又高. 但是奇怪的是只有文件driver才真正利用到了这个优势. 难道是OTP团队的人,不想为了性能把事情搞的复杂了. Driver和最近加入的NIF都提供了大量的线程,锁,同步的原语来支持最大的程度的利用单线程的优势. 俺会做小白鼠来参试这些被遗忘的设施.

Post Footer automatically generated by wp-posturl plugin for wordpress.

Categories: Erlang探索 Tags: , ,