1. 程式人生 > >系統技術非業餘研究 » Inside Erlang VM(你需要知道的VM原理)

系統技術非業餘研究 » Inside Erlang VM(你需要知道的VM原理)

公司培訓用的文件, 對於Erlang的VM會有個大體的認識, 方便設計和使用Erlang.
點解下載pdf格式的文件

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

相關推薦

系統技術業餘研究 » Inside Erlang VM(需要知道VM原理)

公司培訓用的文件, 對於Erlang的VM會有個大體的認識, 方便設計和使用Erlang. 點解下載pdf格式的文件 Post Footer automatically generated by wp-posturl plugin for wordpress.

系統技術業餘研究 » 實驗Erlang語法對應的opcode 讓erlang理解更深

Erlang作為一門FP語言,和傳統的語言結構一樣, 有模組, 有函式, 有語句, 有判斷, 有迴圈, 還有特別的模式匹配。 那麼這些在底層是如何運作的。 我在底下給大家做個簡單的實驗,讓大家一窺內部的細節,讓大家寫碼的時候知道個大概。 erlang的VM作為register based的VM,

系統技術業餘研究 » 量化Erlang程序排程的代價

我們都知道erlang的基本哲學之一就是“小訊息大計算”,簡單的說就是儘可能的在訊息裡面攜帶完整的計算需要的資訊,然後計算要儘可能的多,最好遠超過訊息傳遞的代價。但是為什麼要這樣呢?erlang訊息傳送的效率是很高的, 參見這篇文章 Roughly speaking, I’m seeing 3.4

系統技術業餘研究 » The Erlang/OTP Roadmap(Erlang Factory London 2011)

剛結束不久的Erlang Factory London 2011我很關心的是The Erlang/OTP Roadmap, 每年由Kenneth Lundin宣佈的下一年的開發計劃,對我們掌握erlang團隊的開發進度和方向非常有幫助。 今年的ppt參看 這裡。 R15的開發包括: Line n

系統技術業餘研究 » 答erlang靜態資料查詢方式

解決這個問題有2種方式: 1.  函式匹配 2.  per module constant pool 針對這個問題我做了個試驗, 構建一個atom->int的查詢。 yu-fengdemacbook-2:~ yufeng$ cat t.erl -module(t). -export(

系統技術業餘研究 » erlsnoop erlang訊息監聽器(除錯erlang網路程式利器,支援最新的R13B04)

由於R13B以後, Erlang的分佈協議修改了格式, 添加了Atom Cache, erlsnoop在新版本下無法使用, 我特地打了patch, 使得它支援最新的版本,原始碼在附件中下載. 在erlang的郵件列表上看到: Have you tried putting a snoop to se

系統技術業餘研究 » erl_nif Erlang的ffi 擴充套件erlang的另外一種方法

我們知道擴充套件erl有2種方法, driver和port. 這2個方法效率都低,因為都要經過 port機制,對於簡單的模組,這個開銷有時候是不可接受的。這時候nif來救助了。今天釋出的R13B03已經支援了,雖然是實驗性質的。 erl_nif的代表API functions for an Erl

系統技術業餘研究 » 獲取Erlang系統資訊的程式碼片段

從lib/megaco/src/tcp/megaco_tcp_connection.erl摘抄的程式碼, 挺詳細的關於系統的資訊: SchedId = erlang:system_info(scheduler_id), SchedNum = erlang:sy

系統技術業餘研究 » 檢視Erlang執行期內部狀態的方法(基於R13B04)

erts_debug:get_internal_state是用來獲取Erlang執行期內部資訊的主要手段. 但是這個功能是用來給開發人員或者說需要了解系統內部細節的場合, 比如說系統調優. 在R13B04可以使用的選項有: 1. reds_left 2. node_and_dist_referen

系統技術業餘研究 » 為什麼Erlang是軟實時的

之前在微博上@老師木 同學發起了個關於Erlang搶佔式排程的討論,相對於其他語言Erlang是真正的搶佔式排程服務,這也是erlang能夠號稱軟實時的很重要的原因之一,另外二個原因分別是erlang的GC是針對每個程序的,每次GC通常只需要收集幾K或者幾十個物件;BIF是用trap機制來保證公平

系統技術業餘研究 » latencytop深度瞭解的Linux系統的延遲

我們在系統調優或者定位問題的時候,經常會發現多執行緒程式的效率很低,但是又不知道問題出在哪裡,就知道上下文切換很多,但是為什麼上下文切換,是誰導致切換,我們就不知道了。上下文切換可以用dstat這樣的工具檢視,比如: $dstat ----total-cpu-usage---- -dsk/tot

系統技術業餘研究 » 深度剖析告訴irqbalance有用嗎?

irqbalance專案的主頁在這裡 irqbalance用於優化中斷分配,它會自動收集系統資料以分析使用模式,並依據系統負載狀況將工作狀態置於 Performance mode 或 Power-save mode。處於Performance mode 時,irqbalance 會將中斷儘可能均勻

系統技術業餘研究 » Erlang 17.5引入+hpds命令列控制程序預設字典大小

Erlang 17.5釋出引入控制程序預設字典大小的命令列引數: Erlang/OTP 17.5 has been released Written by Henrik, 01 Apr 2015 Some highlights of the release are: ERTS: Added co

系統技術業餘研究 » Erlang R16B03釋出,R17已發力

Erlang R16B03釋出了,通常03版本是bug fix版本,進入生產版本,官方的說明如下: OTP R16B03 is a service release with mostly a number of small corrections and user contributions. B

系統技術業餘研究 » Erlang R13B04 Installation

R13B04後erlang的原始碼編譯為了考慮移植性,就改變了編譯方式,以下是官方wiki上的安裝文件: 1. Cloning Here are the basic steps to build Erlang/OTP in the Git repository. Start by cloning:

系統技術業餘研究 » Erlang R15的記憶體delayed dealloc特性對訊息密集型程式的影響

在新的NUMA體系結構下,每個CPU都有自己的本地記憶體,如果要訪問其他CPU的記憶體,那算remote了,要走CPU之間的QPI通道,通常這樣速度會有40%的下降。 那麼對於多執行緒的程式來講,這個硬體的變化對軟體也有很大的影響。在多執行緒程式裡面,通常一個執行緒會為一個物件分配記憶體,然後把這

系統技術業餘研究 » Erlang R17新特性淺評

Erlang R17RC2 原始碼已經就緒, 參見 這裡 後續版本的釋出時間,官方的時間安排參見 這裡,摘抄如下: Preliminary dates for the upcoming release: Release: erts, emu,comp |Code stop

系統技術業餘研究 » Erlang R16支援帶顏色的控制檯

Erlang通過fix tty驅動的過濾,在R16版本支援帶顏色的控制檯,這個特性在我們做各種監控工具高亮非常有幫助,參見R16的Readme: Support ANSI in console Unix platforms will no longer filter control sequenc

系統技術業餘研究 » 未公開的erlang ports trace

erlang的trace機制非常強大, 在dbg, ttb模組的配合下, 可以非常清楚的瞭解系統的運作, 排錯, 和調優. 但是有個對於做網路程式重要的功能被忽視了, 沒有寫到文件. 那就是trace ports訊息. 我們的gen_tcp,file都是port實現的, 那麼瞭解這麼模組的運作其實

系統技術業餘研究 » erlang coredump問題

早上成立濤同學問道: : :)我們最近發生了幾次宕機。。節點無緣無故就沒有了。也沒有crash dump,也不知道任何線索。 我們知道erlang的VM在正常運作的時候,如果發現erlang程式的異常或者虛擬機器資源不夠如記憶體不夠的時候,會產生erl_crash.dump檔案,裡面把crash的