自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C++開發(fā)者必看:用Flow-IPC改善進程間通信

云計算
本著這種精神,我們在今年初推出了Flow-IPC。這是一種專門為幫助C++開發(fā)者簡化IPC而設計的開源中間件(采用Apache 2.0和MIT許可證)。?

進程間通信(IPC)對于現(xiàn)代計算環(huán)境至關重要,這種機制使得多個處理器核心能夠同時執(zhí)行多個線程。IPC的本意是讓不同線程甚至獨立程序能夠高效地共享數(shù)據(jù)。例如,當我們在線觀看流媒體視頻時,可能會有一個線程負責視頻解碼,而另一個線程負責渲染視頻內容。

延伸閱讀,點擊鏈接了解 Akamai Cloud Computing

當這些線程在不同程序中運行(例如一個Web服務器和一個安全服務器)時,挑戰(zhàn)就出現(xiàn)了。在這些程序之間傳輸大量數(shù)據(jù)的傳統(tǒng)方法可能速度很慢且效率低下,這通常是由于不同操作系統(tǒng)管理內存的方式差異造成的。不過開源的Flow-IPC解決了這個問題,使得C++開發(fā)者可以快速簡單地實現(xiàn)IPC。

Flow-IPC:一個開源的IPC中間件

Akamai于2022年收購Linode,標志著我們向著云原生計算的戰(zhàn)略正在加速。我們還將上游貢獻和倡導開源作為商業(yè)策略的一部分。本著這種精神,我們在今年初推出了Flow-IPC。這是一種專門為幫助C++開發(fā)者簡化IPC而設計的開源中間件(采用Apache 2.0和MIT許可證)。

Flow-IPC最初是Akamai的一個內部工具,用于在不影響性能的情況下拆分大型應用程序。當時,現(xiàn)有的IPC解決方案要么太慢,要么太復雜。因此從一開始,我們就將Flow-IPC設計為C++中的IPC通用解決方案。本次將Flow-IPC開源并與開發(fā)者社區(qū)分享,是為了促進創(chuàng)新,讓任何需要使用C++管理多線程數(shù)據(jù)共享的開發(fā)者能更簡單地完成任務。

我們在2024年4月公開發(fā)布了Flow-IPC,該項目在Hacker News和其他社區(qū)平臺上收到了強烈反響。很多開發(fā)者分享了自己的IPC挑戰(zhàn)和解決方案,這也讓我們積累了大量建設性的意見和寶貴反饋。

Flow-IPC是為服務器端系統(tǒng)開發(fā)社區(qū)內的廣泛受眾量身打造的。雖然它目前專注于C++,但未來也可能擴展到其他編程環(huán)境。目前,該技術只支持在x86-64架構的Linux上運行。我們計劃未來將該項目擴展到macOS和ARM64架構,并根據(jù)需求擴展到Windows和其他操作系統(tǒng)變體。

Flow-IPC是一個具備可擴展C++17 API的庫,目前可用于本地跨進程邊界的通信。相關內容現(xiàn)已托管在GitHub上,提供了完整的文檔、自動化測試和演示,此外還有一個CI管道,該管道能在一系列GNU編譯器集合(GCC)和Clang編譯器版本以及構建配置中進行測試,包括通過各種運行時分析器進行加固,例如ASan(防止內存誤用)、TSan(防止競爭條件)和UBSan(防止各種未定義行為)。

Flow-IPC與其他解決方案的比較

Flow-IPC提供了簡單高效的通信機制。與gRPC這樣的通用解決方案不同,盡管它們很優(yōu)雅,但可能會引入延遲,而Flow-IPC可以最大限度減少需要復制的數(shù)據(jù),并能無縫集成到現(xiàn)有系統(tǒng)中。傳統(tǒng)的IPC會根據(jù)負載大小引入大小不一的延遲:在我們的測試中,傳輸速度甚至達到了秒級范圍。Flow-IPC則可以在微秒級時間內傳輸大小高達1GB的數(shù)據(jù)結構載荷,而速度與傳輸100KB載荷時差不多。這是提高了三到四個數(shù)量級的改進!通過將商業(yè)級的內存分配器與共享內存集成在一起,還能進一步提高性能。

未來展望

我們很期待整個社區(qū)能夠聯(lián)手讓Flow-IPC走得更遠。歡迎貢獻、功能請求和錯誤報告,同時Akamai也會繼續(xù)開發(fā)和完善該項目。

對于該項目,Akamai目前也有些很有潛力的想法。短期內,與capnp-rpc(以及也許和)gRPC集成是一個顯而易見的選擇。相關協(xié)議和API可以幫助這些框架繼續(xù)保持優(yōu)雅,而Flow-IPC可以提供底層的零復制性能。長期來看,憑借可擴展設計,F(xiàn)low-IPC可以擴展到網絡IPC領域,此外還能通過遠程直接內存訪問(RDMA)實現(xiàn)超快的局域網性能。

Flow-IPC在開源社區(qū)獲得了廣泛關注,我們期待與C++開發(fā)者合作,使其變得更好。Akamai也會繼續(xù)通過開源模式將好用、實用的技術帶給全球更多開發(fā)者。

—————————————————————————————————————————————————

如您所在的企業(yè)也在考慮采購云服務或進行云遷移,

點擊鏈接了解Akamai Linode的解決方案

責任編輯:張燕妮
相關推薦

2012-12-26 09:51:52

C++開發(fā)者C++ CX

2013-09-05 11:04:53

C++開發(fā)者

2011-08-01 16:39:21

Xcode 目錄結構

2024-12-12 08:44:14

JabbaJDK工具

2017-08-06 00:05:18

進程通信開發(fā)

2009-06-24 14:01:34

Web開發(fā)者社區(qū)Google

2010-11-24 10:35:40

Objective-C

2014-04-15 11:27:50

C++開發(fā)者Objective-C核心語法

2011-11-15 09:38:01

黑莓移動開發(fā)開發(fā)者

2014-03-25 09:29:11

扁平化設計歷史

2010-01-05 10:00:48

Linux進程間通信

2013-01-08 11:05:10

2025-02-10 08:18:27

JSON數(shù)據(jù)交換格式

2020-11-04 07:17:42

Nodejs通信進程

2024-03-01 12:03:00

AI模型

2011-06-22 17:09:50

QT 進程 通信

2024-01-05 08:41:31

進程間通信IPC異步通信

2020-02-05 09:13:43

編程開發(fā)編碼

2016-12-02 05:58:04

2018-09-11 11:07:00

點贊
收藏

51CTO技術棧公眾號