Erlang/OTP 27 重點

2024年5月20日 · 作者:Björn Gustavsson

Erlang/OTP 27 終於發布了。這篇部落格文章將介紹我們最興奮的新功能。

閱讀更多

Erlang/OTP 27 中的最佳化

2024年4月23日 · 作者:Björn Gustavsson

這篇文章探討了記錄更新的新最佳化以及其他一些改進。它還簡要概述了最近針對 Erlang/OTP 27 的最佳化歷史。

閱讀更多

Erlang/OTP 26 重點

2023年5月16日 · 作者:Björn Gustavsson

Erlang/OTP 26 終於發布了。這篇部落格文章將介紹我們最興奮的新功能。

閱讀更多

快速隨機整數

2022年5月12日 · 作者:Raimo Niskanen

當您需要「隨機」整數,並且快速且廉價地產生它們至關重要時;那麼 `rand` 模組中功能齊全的虛擬亂數產生器可能就顯得過於強大。這篇部落格文章將深入探討該模組的新增功能、即時編譯器如何最佳化它們、已知技巧,並嘗試比較這些蘋果和馬鈴薯。

閱讀更多

多對一平行訊號傳送最佳化

2021年11月05日 · 作者:Kjell Winblad

這篇部落格文章討論了最近合併到主分支的 平行訊號傳送最佳化(預計將包含在 Erlang/OTP 25 中)。當多個程序同時在多核心機器上向單一程序傳送訊號時,此最佳化提高了訊號傳送的吞吐量。目前,只有當使用 ` {message_queue_data, off_heap}` 設定配置接收程序時,最佳化才會啟用。下圖顯示了在極端情況下,最佳化可以提供的可擴展性改進類型(x 軸為傳送訊號的 Erlang 程序數量,y 軸為吞吐量)。

閱讀更多

用於提高可擴展性的分散式 ETS 計數器

2021年8月03日 · 作者:Kjell Winblad

共享的 Erlang 術語儲存(ETS) 表格通常是儲存經常從多個 Erlang 程序更新和讀取之資料的絕佳位置。ETS 為 Erlang 程序提供鍵值儲存。當啟用 write_concurrency 選項時,ETS 表格會在內部使用細粒度鎖定。因此,多個程序在 ETS 表格中插入和移除不同項目的場景應該可以隨著利用核心的數量良好地擴展。然而,實際上,這種場景的可擴展性還不完美。這篇部落格文章將探討 `decentralized_counters` 選項如何讓我們更接近完美的可擴展性。

閱讀更多

關於訊息傳遞的一些注意事項

2021年3月19日 · 作者:John Högberg

訊息傳遞一直是 Erlang 的核心,雖然文件記錄相當完善,但我們避免深入太多細節,以便在實作時擁有更多自由。然而,這並沒有阻止我們在部落格文章中描述它,所以讓我們仔細看看!

閱讀更多

通往 JIT 的道路

2020年12月01日 · 作者:Björn Gustavsson

只要 Erlang 存在,就一直有使其更快的需要和雄心。這篇部落格文章是一堂歷史課,概述了主要的 Erlang 實作以及改進 Erlang 效能的嘗試。

閱讀更多

初探 JIT

2020年11月03日 · 作者:John Högberg

既然我們已經了解了 BEAM直譯器,我們將探索 OTP 24 中最令人興奮的新增功能之一:即時編譯器,簡稱「JIT」。

閱讀更多

BEAM 簡介

2020年10月20日 · 作者:John Högberg

這篇文章簡要介紹了 BEAM,它是在 Erlang 執行時系統 (ERTS) 中執行使用者程式碼的虛擬機器。它旨在幫助那些不熟悉 BEAM 的人追蹤即將發布的關於 OTP 24 中 JIT 的一系列文章,並將實作細節留到以後再介紹。

閱讀更多

新的可擴展 ETS ordered_set

2020年8月19日 · 作者:Kjell Winblad

在 Erlang/OTP 22 中,具有 `write_concurrency` 選項的 `ordered_set` 類型 ETS 表格的可擴展性比早期版本好得多。在某些極端情況下,與 Erlang/OTP 21 相比,您可以預期 Erlang/OTP 22 中的吞吐量提高 100 倍以上。這種改進的原因是一種稱為 競爭調整搜尋樹(簡稱 CA 樹)的新資料結構。這篇部落格文章將讓您深入了解 CA 樹如何運作,並顯示比較 OTP 21 和 OTP 22 中 ETS `ordered_set` 表格效能的基準測試結果。

閱讀更多

OTP 23 重點

2020年5月13日 · 作者:Kenneth Lundin

OTP 23 剛剛發布(2020 年 5 月 13 日)。這是一個漫長的過程,在最終發布之前,分別在 2 月、3 月和 4 月發布了三個候選版本。我們非常感謝收到的關於候選版本的意見,這些意見揭示了一些我們的內部測試沒有發現的錯誤和缺陷。

閱讀更多

OTP 22 重點

2019年5月13日 · 作者:Lukas Larsson

OTP 22 剛剛發布。這是一個漫長的過程,在最終發布之前發布了三個候選版本。我們今年決定嘗試對主要版本進行多一個月的測試,我認為額外的時間是值得的。我們收到了社群關於我們的內部測試沒有發現的大小錯誤的許多錯誤報告。

閱讀更多

淘汰舊的效能陷阱

2018年11月07日 · 作者:John Högberg

Erlang/OTP 22 將為表格帶來許多效能改進,但大多數都具有廣泛的影響,並且不會影響您編寫有效程式碼的方式。在這篇文章中,我想強調一些過去速度非常慢,但現在不再需要避免的事情。

閱讀更多

OTP 22 中的 TLS 日誌改進

2018年10月05日 · 作者:Péter Dimitrov

Erlang/OTP 22 對於 `ssl` 應用程式來說將是一個重要的版本。我們正在開發幾個新功能和改進,例如對 TLS 1.3 的支援,其中一些已經在主分支上。這篇部落格文章介紹了建立在新記錄器 API 之上的新 ssl 除錯日誌。

閱讀更多

最佳化陷阱和缺陷

2018年8月24日 · 作者:Björn Gustavsson

在暑假後回來,這個部落格現在將改變軌道,開始一系列關於靜態單賦值 (SSA) 的部落格文章。這第一篇文章將為後續的文章設定情境,了解在嘗試最佳化 BEAM 組譯程式碼時可能陷入的陷阱和缺陷。

閱讀更多

BEAM 編譯器簡史

2018年6月18日 · 作者:Björn Gustavsson

這篇部落格文章簡要介紹了 BEAM 機器的 Erlang 編譯器歷史。為了提供一些背景資訊,首先將快速瀏覽一下 Erlang 的抽象機器。

閱讀更多

直譯器最佳化

2018年6月11日 · 作者:Lukas Larsson

erts 中的 BEAM 直譯器已在 OTP 21 中完全重寫。大多數指令保持不變,但用於生成 C 程式碼的 Perl 腳本具有新的實作方式。這篇部落格文章將探討由於這些變更而可能實現的一些最佳化。

閱讀更多

核心 Erlang 總結

2018 年 5 月 30 日 · 作者:Björn Gustavsson

這篇部落格文章總結了前兩篇部落格文章中開始的核心 Erlang 探索。文章描述了剩餘的預設核心 Erlang 傳遞,然後探討核心 Erlang 在編譯器內部的表示方式。

閱讀更多

核心 Erlang 範例

2018 年 5 月 7 日 · 作者:Björn Gustavsson

這篇部落格文章是關於核心 Erlang 格式的第一篇。在這篇部落格文章中,我們透過比較 Erlang 程式碼和相應的核心 Erlang 程式碼的範例來介紹核心 Erlang 格式。

閱讀更多

我的 OTP 21 重點

2018 年 5 月 2 日 · 作者:Lukas Larsson

OTP-21 Release Candidate 1 剛剛發布。我想分享我最興奮的一些變更。這些變更很可能主要是在 erts 和核心函式庫中的功能,因為這些是我最熟悉的變更。

閱讀更多

OTP 21 中的記憶體檢測

2018 年 5 月 2 日 · 作者:John Högberg

Erlang/OTP 21 重新編寫了記憶體檢測模組,使其更易於使用。在這篇文章中,我將描述新功能背後的原理,以及如何使用它們。

閱讀更多

使用 'time' 選項探索編譯器

2018 年 4 月 19 日 · 作者:Björn Gustavsson

這是關於編譯器的一系列部落格文章的第一篇。將會有關於編譯器現在如何運作、未來可能如何運作以及一些解釋某些事物為何如此的歷史記錄的部落格文章。在這篇部落格文章中,我將討論探索編譯器最有用的選項之一,即 time 選項。

閱讀更多

OTP 21 中的 I/O 輪詢選項

2018 年 4 月 11 日 · 作者:Lukas Larsson

Erlang/OTP 21 將引入全新的 IO 輪詢實作。這個新的實作帶有一組新的可調整參數,可用於充分利用您的系統。這篇部落格文章描述了這些參數,並試圖說明它們應該用於什麼。

閱讀更多