[發明專利]一種提升Codeigniter框架性能的方法及裝置有效
| 申請號: | 202011640486.7 | 申請日: | 2020-12-31 |
| 公開(公告)號: | CN112612428B | 公開(公告)日: | 2022-06-28 |
| 發明(設計)人: | 甘磊;連恒;郭政;周華;胡軍擎 | 申請(專利權)人: | 上海英方軟件股份有限公司 |
| 主分類號: | G06F3/06 | 分類號: | G06F3/06;G06F9/448;G06F9/48 |
| 代理公司: | 上海國智知識產權代理事務所(普通合伙) 31274 | 代理人: | 潘建玲 |
| 地址: | 200011 上海市黃*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 提升 codeigniter 框架 性能 方法 裝置 | ||
1.一種提升Codeigniter框架性能的方法,包括如下步驟:
步驟S1,調整Codeigniter框架代碼,拆分Codeigniter框架入口及核心文件,并調整其中與Swoole不兼容的代碼,以供Swoole調用;
步驟S2,創建一個Server,產生Worker 進程、Task 進程、Manager進程和包含Reactor線程的Master 進程,并開啟協程化支持;
步驟S3,在所述Server接收到業務請求后,由Master進程基于事件驅動轉發給Worker進程;
步驟S4,Worker進程調用Codeigniter框架處理所述Master進程的Reactor線程投遞的業務請求,并將響應數據發給Reactor線程;
步驟S5,所述 Reactor線程將得到的響應數據發送給客戶端。
2.如權利要求1所述的一種提升Codeigniter框架性能的方法,其特征在于,步驟S1包括:
步驟S100,將所述Codeigniter框架入口index.php中進行框架資源相關和環境常量的初始化代碼提取為Codeigniter_config.php;
步驟S101,將所述Codeigniter框架的核心文件Codeigniter.php中框架本身資源的加載和初始化提取為Codeigniter_init.php;
步驟S102,將所述Codeigniter框架的核心文件Codeigniter.php中處理業務請求數據相關的代碼提取為Codeigniter_execute.php;
步驟S103,對所述Codeigniter框架中不兼容Swoole的代碼進行修改調整,并將修改調整后的代碼按照類別放置到Codeigniter_init.php和Codeigniter_execute.php中。
3.如權利要求2所述的一種提升Codeigniter框架性能的方法,其特征在于:于步驟S103中,對Codeigniter框架中不兼容Swoole的代碼重進行修改調整,包括exit/die、對異常拋出進行 try/catch以及使用 Co::sleep() 替換原生sleep,并將調整后的代碼按照類別放置到Codeigniter_init.php和Codeigniter_execute.php中。
4.如權利要求2所述的一種提升Codeigniter框架性能的方法,其特征在于,步驟S2包括:
步驟S200,新建Swoole入口;
步驟S201,在新入口中創建swoole_http_server,并設定Worker進程的數量worker_num以及設定最大請求次數max_request運行參數;
步驟S202,開啟協程化支持,讓同步IO的代碼變成可以協程調度的異步IO;
步驟S203,設定Worker進程啟動回調方法onWorkerStart,加載在步驟S100、步驟S101中調整過的框架配置和初始化部分代碼;
步驟S204,設定request回調方法onRequest,加載框架業務處理部分代碼;
步驟S205,調用start啟動按照前述步驟配置運行的服務器Server,創建Master進程以及Manager進程,由Manager進程依據前述步驟中的配置創建和回收Worker/Task進程。
5.如權利要求4所述的一種提升Codeigniter框架性能的方法,其特征在于:于步驟S205中,執行php Serve.php命令以調用start啟動服務器。
6.如權利要求4所述的一種提升Codeigniter框架性能的方法,其特征在于,步驟S3進一步包括:
步驟S300,Master進程默認啟動CPU核數相同數量的Reactor線程;
步驟S301,由Reactor線程負責維護客戶端 TCP 連接、處理網絡 IO、處理協議,將客戶端發來的請求數據緩沖、拼接、拆分成完整的一個請求數據包;
步驟S302,Reactor線程將完整的請求數據包投遞給Worker進程。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海英方軟件股份有限公司,未經上海英方軟件股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011640486.7/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種商用空調外機用排水支架
- 下一篇:一種基于日志解析的DDL分析方法及裝置





