2010-01-31 61 views
11

Chicago Boss看起來像一個整潔的框架和學習Erlang的好藉口。有人在那裏使用芝加哥老闆?

有沒有人用過它?我真的可以獲得很棒的性能嗎?

+1

做出一些網站其實我發現芝加哥老闆的創作者在這裏的一天。驚訝他還沒有評論你。 – samoz 2010-06-09 17:38:37

+2

奇怪的是兩年後,這突然變成了「脫離主題」。即使問題沒有正確框定,這裏的答案也很有幫助。我可以編輯刪除國旗嗎? – user94154 2013-01-29 14:48:08

回答

4

我不能說芝加哥老闆的表現,但Erlang的網絡服務器一般都很快。

由於Erlang的併發原語,它們對於多個併發連接也非常有用。我知道芝加哥老闆不使用Yaws,但這是一張Apache vs. Yaws圖表,僅供參考。同意,C在許多情況下速度更快,但在C處理過程中您將獲得的任何速度,當您擁有多個用戶時,您將會失去。可以這樣想:

  • C可能需要10個時間單位來完成一個任務,但20個單位切換到下一個客戶端並返回。
  • Erlang可能需要15個單位時間來完成,但需要約5個單位來切換客戶端。
  • 免責聲明:時間單位只是相對的條款。我並不是說這些都是正確的比例,我只是說,一旦你開始有多個事情同時發生,這就是Erlang的目標,C的速度優勢不會是一個很大的因素。
1

通常Erlang比在C中做同樣的事情慢大約4-5倍,儘管它在速度上損失了很多,它在效率,簡單性和穩定性方面都有所提升。做Erlang擅長的東西,我認爲它大約是C的2-3倍。它也可以編譯爲本地二進制文件,以加速它的20%左右。

只要知道Erlang不擅長的大量常見事情,比如字符串操作和數字運算。 Erlang是爲分發而設計的(在大多數語義中),所以這就是它的優點。

哦,還有關於單個機器的卓越性能:不超過C應用程序的一半。但是,再次,這仍然可能比ruby,php或python等效的速度快30-40倍。

+0

那麼Erlang擅長什麼? 另外,Erlang是否需要在C中手動處理很多事情(如垃圾回收)? – user94154 2010-02-01 19:30:13

+1

是的,這就是我的意思是高效,簡單和穩定。基本上,在Erlang中需要10行代碼需要100個C語言。Erlang中的錯誤處理非常簡單,並且產生了新的進程。這些事情在C中花費了大量的開發時間。Erlang在現實生活中的應用程序的正常運行時間爲99.9999999%,僅僅是因爲它的設計失敗而不會崩潰,因爲它必須用於電信和類似的東西。您可以在運行時更新應用,這非常少見。 – 2010-02-01 19:36:22

+1

哦,關於垃圾收集..本身沒有這樣的東西。 Erlang沒有狀態,它是一種功能語言。變量只能設置一次,所以內存溢出不會發生(除非你嚴重損壞或故意這樣做)。 – 2010-02-01 20:09:07