跳至主要內容
返回博客

以代碼締造更環保的未來:Erlang 與 Elixir

閱讀需時 3 分鐘 開發

綠色編程與當前趨勢

綠色革命正推動全球各行各業採納更可持續的做法。同樣地,軟件開發也開始意識到自身在減輕環境影響方面的角色。據估計,數據處理已佔美國排放量逾 2%,而在沒有實施緩解措施的情況下,這個數字預計還會上升,「綠色編程」技術的需求顯而易見。綠色編程是指透過優化效率來減少資源使用和排放的編程實踐與語言。Erlang 和 Elixir 就是其中兩種語言,它們憑藉並發與並行的能力,使效能遠超更常見的語言所能達到的水平,以優化代碼來應對日益加劇的影響。

數十年來,硬件晶片的技術能力呈指數級增長,主要靠提高時脈速度,即處理器核心元件每秒跳動的頻率。時脈越快,晶片每秒可執行的運算越多。然而,當時脈提升至遠高於 4GHz 時便遇上物理極限,因為更高的功耗令晶片開始嚴重過熱。為了繼續提供更快的處理器,晶片設計師轉而增加每顆晶片的處理核心數量,而非加快單一核心。現代 CPU 可包含數十個核心,每個核心的時脈雖較低,但整體運算能力已綽綽有餘。軟件要同時充分發揮多個核心的並行處理能力,就必須具備並發與並行的能力,而這正是許多常見語言所欠缺的。

認識並發與並行

並發是指同時處理多項任務,而並行則是指利用多個處理單元在完全相同的時間執行多項任務。透過並發與並行充分利用所有可用的 CPU 核心,是軟件在現代多核心硬件上發揮最高效率的關鍵。

並發與並行的應用影響

試想一個運行於數據中心伺服器集群的大型網絡應用程式。若只使用單一核心,它每秒可處理 1,000 個請求,耗電 100 瓦。若透過並發的異步任務,將處理工作分散到伺服器全部 32 個核心,並憑藉並行處理,在同樣耗電 100 瓦的情況下,吞吐量可呈倍數增長至每秒超過 32,000 個請求。每個請求的能源成本將下降超過 30 倍,大規模應用時可大幅減少用電量和碳排放。

隨著硬件持續朝增加核心數量的方向演進以提升效能,若軟件在構建時沒有考慮並發與並行,便會白白浪費龐大的處理能力。要實現可持續運算,必須採用能讓軟件跟上多核心發展步伐的技術。

Erlang 與 Elixir 的威力

硬件設計轉向增加處理核心數量而非加快單一核心,為軟件帶來了新挑戰。C、Java、Python 和 C++ 等傳統語言在多核心 CPU 出現之前已經誕生,主要針對使用單一核心進行優化,其餘核心閒置卻仍在耗電。要在現代並行硬件上發揮最高效率,軟件必須支援真正的並發,同時將工作分配到所有可用核心。

Erlang 和 Elixir 從設計之初便充分考慮硬件的多核心新現實。其輕量級的進程模型及對異步訊息傳遞的內建支援,讓並發與並行運作得天衣無縫。應用程式透過自動將工作分配給並發進程,可自然地擴展以運用所有 CPU 資源。

還有其他解決方案嗎?

其他語言或許提供線程等方案,但這些做法容易出現死鎖和競爭條件等問題,要在大規模下做到可靠,需要投入大量額外的編程工作。相比之下,Erlang 和 Elixir 透過其虛擬機抽象層,將這些複雜性隱藏起來。開發人員可專注解決業務問題,而運行時則會以最佳方式協調並行執行。

因此……

Erlang 和 Elixir 從一開始便針對現代晶片架構進行優化,讓軟件能跟上硬件的演進。它們帶來的效率提升,是傳統針對單核心優化的語言無法比擬的,因而在應對多核心時代的可持續運算需求上獨具優勢。

優質代碼,低碳文化。

複雜的部分交給我們,您只需專注實現願景,並獲得可擴展、可靠的軟件。我們的綠色編程確保創新暢通無阻,讓您的營運和影響力面向未來。歡迎聯絡我們,討論如何以注重碳排放的開發方式,為您即將開展的數碼項目提供高質素的解決方案。

下一步是甚麼?

更多文章