一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Swow高性能純協(xié)程網(wǎng)絡(luò)通信引擎

Swow高性能純協(xié)程網(wǎng)絡(luò)通信引擎

2022-06-17 | zip | 1.14 MB | 次下載 | 免費

資料介紹

授權(quán)協(xié)議 Apache-2.0
開發(fā)語言 C/C++ PHP
軟件類型 開源軟件
所屬分類 程序開發(fā)網(wǎng)絡(luò)工具包

軟件簡介

Swow 是一個使用 PHP 和 C 編寫的高性能純協(xié)程網(wǎng)絡(luò)通信引擎。它致力于使用最小C核心及多數(shù)PHP代碼以支持PHP高性能網(wǎng)絡(luò)編程。

協(xié)程

Swow實現(xiàn)了一套有史以來最完整的PHP協(xié)程模型,它全面釋放了PHP的真正實力,使得開發(fā)者可以做到以往難以想象的事情。

高性能

支持每秒百萬次上下文切換。且由于Swow支持純C協(xié)程與PHP協(xié)程混合運行,兩者之間僅進行C棧單棧上下文切換,且Swow的事件調(diào)度器就是純C協(xié)程,因此大部分協(xié)程切換都是單棧切換,其切換速度遠超C + PHP的雙棧切換。

高可控

現(xiàn)在協(xié)程可以使得PHP虛擬機像一個迷你操作系統(tǒng)一樣,其中運行的協(xié)程近似于操作系統(tǒng)的進程/線程,開發(fā)者能夠以超細粒度任意操控這些協(xié)程,如查看所有協(xié)程的運行狀態(tài)、attach進入?yún)f(xié)程、單步調(diào)試跟蹤、查看協(xié)程棧乃至每個棧幀、查看或修改協(xié)程內(nèi)變量、中斷協(xié)程或殺死協(xié)程等。

基于這樣的可控性,開發(fā)者還可以借助WatchDog組件對陷入死循環(huán)或處于IO阻塞的協(xié)程進行警報、中斷、讓出甚至殺死等多種處理,以避免個別協(xié)程影響到程序整體穩(wěn)定性。

并且,其與進程設(shè)計哲學的契合性,也決定了協(xié)程應(yīng)用的健壯性極佳。正如單個進程的崩潰不會導(dǎo)致整個系統(tǒng)的崩潰一樣,單個協(xié)程的崩潰也不會導(dǎo)致整個進程的崩潰,并且得益于PHP強大的異常機制和資源管理能力,與協(xié)程綁定的相關(guān)資源都能被安全地釋放。你無需再為未捕獲的異常殫精竭力,也不要再去捕獲Throwable,遇到未知的錯誤請Let it crash。

易兼容

無需創(chuàng)建協(xié)程也無需判斷是否在協(xié)程環(huán)境,在Swow中,所及之處,皆為協(xié)程,打開編輯器,即刻就可以開始書寫你的代碼!這也意味著它將更好地兼容已有的生態(tài),我們再也不需要為PHPUnit重寫一個由協(xié)程包裹的入口。

事件驅(qū)動

Swow基于協(xié)程事件庫libcat開發(fā),libcat又基于異步事件庫libuv開發(fā),得益于此,我們擁有了經(jīng)過工業(yè)級驗證的事件循環(huán)驅(qū)動,并且它支持幾乎所有常見操作系統(tǒng)。因此,Swow也是首個能在原生Windows平臺運行,且通過IOCP驅(qū)動的PHP協(xié)程網(wǎng)絡(luò)編程引擎。由于libuv遵循Proactor模型,不久后我們又可以在Linux下免費獲得由新特性io_uring帶來的可觀性能提升。

PHP可編程性

最小C核心意味著底層不再包攬所有事務(wù),而是僅提供最細粒度的基礎(chǔ)接口,即擴展層不再像是一個框架(framework),而更像是庫(library),這將使PHP的編程能力最大化。

且隨著PHP8和JIT的到來,我們?yōu)槭裁催€要大量使用C或是C++來完成那些PHP也能做到的工作呢?更多地使用PHP而不是C、C++,也契合了PHP內(nèi)核的未來發(fā)展方向。

更強的可編程性也帶來了更多的可能性。試想一下,曾經(jīng)你想寫一個簡單的WAF程序,通過檢測IP或是解析HTTP頭部來實施一些鑒權(quán)操作,但當你在回調(diào)中拿到請求對象時,底層已經(jīng)替你完成了整個請求的接收,龐大的HTTP報文解析或許已經(jīng)損害了你的程序性能。

但現(xiàn)在,Swow提供的Buffer模塊使得PHP可以像C一樣精細地進行內(nèi)存管理,結(jié)合Socket模塊和一些協(xié)議解析器,它允許你掌握小到每個字節(jié)的接收和解析,或許在未來開發(fā)者完全可以使用Swow編寫高性能的網(wǎng)關(guān)程序,一切都可以通過PHP編程的方式改變,且它們?nèi)际莾?nèi)存安全的。

現(xiàn)代化

面向?qū)ο?/h3>

Swow在面向?qū)ο蟮牡缆飞虾蚉HP的進化路線如出一轍,不管是早期的PHP或是其它有悠久歷史的擴展,對于API的設(shè)計大都是面向過程的,而經(jīng)過多年發(fā)展,PHP社區(qū)早已是面向?qū)ο蟮奶煜?,PHP也為內(nèi)建API的面向?qū)ο笾С侄恍概ΑC嫦驅(qū)ο笫沟梦覀兛梢愿玫鼗赟wow庫進行二次封裝,我們可以直接繼承內(nèi)部類并實現(xiàn)PSR接口以0成本支持PSR規(guī)范,這在實際應(yīng)用中讓我們的程序性能得到了極大的提升。

擁抱異常

Swow在錯誤處理方面和PHP的改革理念也是一致的,PHP8干掉了大量的notice、warning、error,轉(zhuǎn)而使用基于異常機制的Error/Exception,極大地增強了程序的健壯性(不要再讓錯誤的程序繼續(xù)運行下去)。

曾經(jīng)我們要求開發(fā)者在每個IO操作后檢查返回值,否則程序就可能陷入非預(yù)期的錯誤狀態(tài)中,這樣的編碼方式,無異于是一種歷史的倒退,干掉if ($err != null),擁抱異常機制,才是正確的發(fā)展道路。

而基于上述改進,我們現(xiàn)在能以鏈式調(diào)用的方式書寫代碼,使代碼變得更加簡潔且富有節(jié)奏感。

綠色增強

Swow和Opcache非常相似,兩者都允許開發(fā)者在幾乎不改變代碼的情況下,僅通過開啟擴展就能使得應(yīng)用程序獲得免費大量的能力提升。即保證相同的代碼具有一致的輸出結(jié)果,但它們在底層所運行的指令或是系統(tǒng)調(diào)用可能不盡相同。

因此,Swow理所當然地支持所有SAPI(CLI,F(xiàn)PM等)。但需要注意的是,受制于FPM的模型,你無法簡單地通過開啟Swow直接獲得性能上的提升,但它仍能在功能上對FPM進行增強(如并發(fā)請求接口、執(zhí)行異步任務(wù)等)。

此外,即使是傳統(tǒng)的同步阻塞應(yīng)用,也可以使用Swow生態(tài)下的應(yīng)用組件,如使用Swow提供的Debugger工具對程序進行斷點調(diào)試分析等。

線程安全

Swow支持在PHP的ZTS(Zend Thread Safety)版本下運行,即基于內(nèi)存隔離的多線程支持。

這意味著它可以和parallel、pthreads等多線程擴展很好地結(jié)合使用,但Swow本身不會提供任何多線程支持。

學習成本

Swow是否又是一個全新的輪子?答案是否定的。如果你熟悉如Swoole這樣的協(xié)程庫,那么你幾乎無需任何學習成本就可以上手Swow,反之,Swow可能更易于上手,因為它更現(xiàn)代化,面向?qū)ο?、異常機制、純協(xié)程、零異步回調(diào)等一切特性都只為了讓你的編碼更加從容優(yōu)雅。

此外,如果你的項目使用了社區(qū)流行協(xié)程框架,那么它的升級成本可能僅和由PHP5升級到PHP7相當,并且你還可能因此獲得20%的免費性能提升和可觀的內(nèi)存占用縮減。

現(xiàn)階段的Swow非常適合技術(shù)先驅(qū)和極客們嘗鮮,它將走在PHP異步協(xié)程技術(shù)的前沿,擁抱變化甚至引領(lǐng)變化。

編程理念

Swow遵循CSP的并發(fā)模型,而不是Callback模型。在實現(xiàn)上來說,協(xié)程是異步回調(diào)的超集,通過創(chuàng)建新的協(xié)程可以模擬異步回調(diào),而反之則不行。

兩個問題

Swoole/Swow對于并發(fā)網(wǎng)絡(luò)編程支持的技術(shù)抉擇終結(jié)于克服兩個巨大的現(xiàn)實技術(shù)難題:一個是回調(diào)地獄,另一個是生態(tài)。

一個選擇

PHP異步網(wǎng)絡(luò)編程技術(shù)的奠基者Swoole早期就嘗試了異步回調(diào)模型,但在實際開發(fā)中該技術(shù)常常制造出難以維護的代碼,而協(xié)程技術(shù)可以解決嵌套異步回調(diào)代碼可維護性極差的問題并減輕開發(fā)者的心智負擔。

而選擇有棧協(xié)程技術(shù)而不是無棧協(xié)程,則是為了更好地復(fù)用已有的龐大的PHP生態(tài)。在這一點上,其它已知的異步事件庫都走在了與PHP原有生態(tài)更加割裂的方向上。在Swow中,我們可以完美復(fù)用大量的PHP網(wǎng)絡(luò)設(shè)施庫及基于它們開發(fā)的海量PHP包支持而無需修改任何代碼。

協(xié)程思維

此外,在純協(xié)程的編程理念中,我們不應(yīng)再以異步回調(diào)的方式去思考代碼實現(xiàn)。以實現(xiàn)一個有限次數(shù)的定時任務(wù)為例,我們不再應(yīng)該先想到異步定時器,使用異步定時器實現(xiàn)我們需要借助全局變量上下文保存狀態(tài)并對其計數(shù),在執(zhí)行指定次數(shù)后刪除定時器,而在協(xié)程的方式下,我們只是簡單地新建一個協(xié)程并for循環(huán)指定次數(shù),每次循環(huán)通過sleep()掛起指定的時間,再執(zhí)行任務(wù)。

顯然協(xié)程方式的好處是代碼直觀且上下文信息不會丟失。異步定時器的每次執(zhí)行都需要一個全新的回調(diào)堆棧,在異步混合協(xié)程的實現(xiàn)下,每次回調(diào)都必須創(chuàng)建一個新的協(xié)程,此時純協(xié)程實現(xiàn)的各種好處就不言而喻了。

?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費