...夠,難以應對實際項目中的問題。例如我想要知道在卸載sw(下文簡稱sw)后需不需要手動清理caches,搜索引擎是沒有什么好答案的。這篇文章結合淘寶首頁PWA的經驗,分享出我認為非常有價值的關于Service Worker的知識點。 先從...
前言 經過 php_swoole_server_before_start 調用 swReactorThread_create 創建了 serv->reactor_threads 對象后,swServer_start 調用 swReactorThread_start 創建了 reactor 多線程。線程在建立之時,就會調用 swReactorThread_loop 函數開啟 reactor 事件循環...
swPort_onRead_check_eof EOF 自動分包 我們前面說過,swPort_onRead_raw 是最簡單的向 worker 進程發送數據包的方法,swoole 會將從客戶端接受到的數據包,立刻發送給 worker 進程,用戶自己把數據包拼接起來 如果啟用了 EOF 自動分包,那...
swManager_start 創建進程流程 task_worker 進程的創建可以分為三個步驟:swServer_create_task_worker 申請所需的內存、swTaskWorker_init 初始化各個屬性、swProcessPool_start 創建進程 int swManager_start(swFactory *factory) { swFactoryProcess *...
Server 的啟動 在 server 啟動之前,swoole 首先要調用 php_swoole_register_callback 將 PHP 的回調函數注冊到 server 的對象函數中去 之后調用 php_swoole_server_before_start 創建 swReactorThread 數組對象、workers 進程池對象 最后調用 swServer_start 函...
...選項 構造 server 對象 構造 server 對象最重要的是兩件事:swServer_init 初始化 server、為 server 添加端口: PHP_METHOD(swoole_server, __construct) { zend_size_t host_len = 0; char *serv_host; long sock_type = SW_SOCK...
前言 swoole_client 提供了 tcp/udp socket 的客戶端的封裝代碼,使用時僅需 new swoole_client 即可。 swoole 的 socket client 對比 PHP 提供的 stream 族函數有哪些好處: stream 函數存在超時設置的陷阱和 Bug,一旦沒處理好會導致 Server 端長...
...。而其中的關鍵點,其實就是離線使用的功能,也就是 sw 在其中的作用。由于 sw 可以攔截 client 的請求,也就是能夠根據請求,把請求后的 response 用瀏覽器緩存 caches 緩存下來,以實現離線的使用 三. 生命周期 說到 sw 的生命周...
swManager_loop 函數 manager 進程管理 manager 進程開啟的時候,首先要調用 onManagerStart 回調 添加信號處理函數 swSignal_add,SIGTERM 用于結束 server,只需要 running 設置為 0,manager 會逐個殺死 worker 進程;SIGUSR1 用于重載所有的 worker ...
...ctor 模式一直是眾多網絡框架的首要選擇,本節主要講解 swoole 中的 reactor 模塊。 UNP 學習筆記——IO 復用 Reactor 的數據結構 Reactor 的數據結構比較復雜,首先 object 是具體 Reactor 對象的首地址,ptr 是擁有 Reactor 對象的類的指針...
...行開發,來為 tcp 層進行 SSL 隧道加密 OpenSSL 初始化 在 swoole 中,如果想要進行 ssl 加密,只需要如下設置即可: $serv = new swoole_server(0.0.0.0, 443, SWOOLE_PROCESS, SWOOLE_SOCK_TCP | SWOOLE_SSL); $key_dir = dirname(dirname(__DIR__))....
...程序來說,保證數據正確的同步與更新離不開鎖和信號,swoole 中的鎖與信號基本采用 pthread 系列函數實現。UNIX 中的鎖類型有很多種:互斥鎖、自旋鎖、文件鎖、讀寫鎖、原子鎖,本節就會講解 swoole 中各種鎖的定義與使用。 APU...
前言 swoole 的 timer 模塊功能有三個:用戶定時任務、剔除空閑連接、更新 server 時間。timer 模塊的底層有兩種,一種是基于 alarm 信號,一種是基于 timefd。 timer 數據結構 timer 數據結構是 swTimer。其中 heap 是多個 swTimer_node 類型...
...,過程和服務端類似,此處不需要多說。 static PHP_METHOD(swoole_client, recv) { zend_long buf_len = SW_PHP_CLIENT_BUFFER_SIZE; zend_long flags = 0; int ret; char *buf = NULL; if (zend_parse_parame...
ChatGPT和Sora等AI大模型應用,將AI大模型和算力需求的熱度不斷帶上新的臺階。哪里可以獲得...
大模型的訓練用4090是不合適的,但推理(inference/serving)用4090不能說合適,...
圖示為GPU性能排行榜,我們可以看到所有GPU的原始相關性能圖表。同時根據訓練、推理能力由高到低做了...