系統技術非業餘研究 » Erlang強大的程式碼自動重構工具 tidier
Jan 29, 2010
We are very happy to announce the website of Tidier, an automatic
refactoring tool for Erlang programs.
Tidier cleans up Erlang source code and suggests to its user a sequence
of transformations that improve the quality and performance of code.
More information about tidier can be found at its website (*):
We welcome feedback and suggestions!
Kostis Sagonas and Thanassis Avgerinos
俺很期待的東西.試驗了下,可以上傳erl檔案或者整個專案的包上去, tidier果然很爭氣的找出有問題或者需要改進的地方
,效果相當的好. Erlang R13B04的程式碼都是經過tidier的. 唯一不好一點就是不開源,使用上有點受限,但是我們還是很感激的.
Post Footer automatically generated by wp-posturl plugin for wordpress.
No related posts.
相關推薦
系統技術非業餘研究 » Erlang強大的程式碼自動重構工具 tidier
Jan 29, 2010 We are very happy to announce the website of Tidier, an automatic refactoring tool for Erlang programs. Tidier cleans up Erlang source c
系統技術非業餘研究 » Erlang程式碼反編譯以及檢視彙編碼
Erlang的程式碼是先翻譯成abstract_code,再到目的碼的,如果有符號資訊很容易恢復原始碼,通常我們部署系統的時候需要把符號資訊去掉,reltool就可以幹這個事情! 我們演示下: $ cat server.erl -module(server). -compile(export
系統技術非業餘研究 » 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 coredump問題
早上成立濤同學問道: : :)我們最近發生了幾次宕機。。節點無緣無故就沒有了。也沒有crash dump,也不知道任何線索。 我們知道erlang的VM在正常運作的時候,如果發現erlang程式的異常或者虛擬機器資源不夠如記憶體不夠的時候,會產生erl_crash.dump檔案,裡面把crash的
系統技術非業餘研究 » Erlang open_port極度影響效能的因素
Erlang的port相當於系統的IO,打開了Erlang世界通往外界的通道,可以很方便的執行外部程式。 但是open_port的效能對整個系統來講非常的重要,我就帶領大家看看open_port影響效能的因素。 首先看下open_port的文件: {spawn, Command} Star
系統技術非業餘研究 » Erlang節點重啟導致的incarnation問題
今天晚上mingchaoyan同學在線上問以下這個問題: 152489 =ERROR REPORT==== 2013-06-28 19:57:53 === 152490 Discarding message {send,<<19 bytes>>} from <0.8
系統技術非業餘研究 » Erlang port巧用環境變數
Erlang與外面世界的互動主要通過port來進行的,特別是和外部程式的協作,通常是通過管道進行的。 基本上有2種方法可以呼叫外部程式: 1. os:cmd 2. erlang:open_port, 這二種方式各有利弊,先看文件: os:cmd的文件參見這裡 cmd(Command) ->
系統技術非業餘研究 » Erlang新新增選項 +zerts_de_busy_limit 控制節點間通訊的資料量
erlang節點間通訊預設是通過tcp通道進行的, 而且每對節點間只有一個tcp連結,所有的rpc和內建的類似monitor這樣的訊息也都是通過這個通道進行的. 當資料量過大的時候, 系統就會發出 busy distribution port警告, 同時限制資料的吞吐. 這個值預設是128k. 現
系統技術非業餘研究 » Erlang Shell實用小技巧
Erlang Shell下有很多內建的命令,在平時互動的時候很好用,文件裡面都是一行帶過,大家可能沒什麼感覺。 我來重點講解和演示下: $ erl Erlang R14B04 (erts-5.8.5) [/source] [smp:2:2] [rq:2] [async-threads:0] [h
系統技術非業餘研究 » ”Erlang supervisor 極其白痴的 Bug“的澄清
2008-05-26的時候, 著名的Trustno1發表了這篇文章 http://www.iteye.com/topic/197097 抱怨Erlang supervisor 極其白痴的一個bug. 今天 @淘李福 同學重新提起這個事情: 翻到一個老帖子: http://www.iteye.com
系統技術非業餘研究 » Erlang叢集RPC通道擁塞問題及解決方案
Erlang的叢集預設情況下是全聯通的,也就是當一個節點加入叢集的時候,介紹人會推薦叢集裡面所有的節點主動來和新加入的節點建立聯絡, 效果如下圖: 我們這次不講如何避免全聯通而是來講這個節點間通道的問題。 我們知道erlang的訊息傳送是透明的,只要呼叫Pid!Msg, 虛擬機器和叢集的基礎設
系統技術非業餘研究 » Erlang match_spec引擎介紹和應用
match_spec是什麼呢? A “match specification” (match_spec) is an Erlang term describing a small “program” that will try to match something (either the para
系統技術非業餘研究 » Erlang虛擬機器基礎設施dtrace探測點介紹和使用
最新的Erlang虛擬機器(R15B01)很大的一個改進就是加入了對dtrace探測點的支援了, 具體參見這裡, 主要目標是方便在生產實踐中定位複雜的效能問題。 目前Erlang的虛擬機器的探測點支援Linux的systemtap和freebsd的dtrace,我們剛好能夠享受的到。 作者Scot
系統技術非業餘研究 » erlang的abstract code
erlang的abstract code是編譯的中間程式碼,很多工具如 erl_pp lint什麼的都是根據這個做調整的。還有進一步的parse_transform也是基於它的。 所以,瞭解它非常重要。 erts user guide裡面詳細了描述了它的定義。我這裡展示的是如何獲取到某個模組的ab
系統技術非業餘研究 » Erlang原始碼彙編格式
我們在編碼的時候, 通常會好奇, 這時候需要觀察erl原始碼生成的VM opcode. Erlang的VM是register based的VM, 生產的opcode很容易理解. 生成彙編格式有2種方式: 1. 從原始碼生成抽象碼. erlc +”‘S'” mod.erl, 生成mod.S 2.