[發(fā)明專利]一種提升Codeigniter框架性能的方法及裝置有效
| 申請?zhí)枺?/td> | 202011640486.7 | 申請日: | 2020-12-31 |
| 公開(公告)號(hào): | CN112612428B | 公開(公告)日: | 2022-06-28 |
| 發(fā)明(設(shè)計(jì))人: | 甘磊;連恒;郭政;周華;胡軍擎 | 申請(專利權(quán))人: | 上海英方軟件股份有限公司 |
| 主分類號(hào): | G06F3/06 | 分類號(hào): | G06F3/06;G06F9/448;G06F9/48 |
| 代理公司: | 上海國智知識(shí)產(chǎn)權(quán)代理事務(wù)所(普通合伙) 31274 | 代理人: | 潘建玲 |
| 地址: | 200011 上海市黃*** | 國省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 提升 codeigniter 框架 性能 方法 裝置 | ||
本發(fā)明公開了一種提升Codeigniter框架性能的方法及裝置,該方法包括:步驟S1,調(diào)整Codeigniter框架代碼,拆分框架入口及核心文件,并調(diào)整其中與Swoole不兼容的代碼;步驟S2,創(chuàng)建一個(gè)Server,產(chǎn)生包含Reactor線程的Master、Worker、Task及Manager進(jìn)程,并開啟一鍵協(xié)程化;步驟S3,在Server接收到業(yè)務(wù)請求后,由Master基于事件驅(qū)動(dòng)轉(zhuǎn)發(fā)給Worker;步驟S4,Worker調(diào)用Codeigniter框架處理Master的Reactor線程投遞的業(yè)務(wù)請求,將響應(yīng)數(shù)據(jù)發(fā)給Reactor;步驟S5,Reactor將得到的響應(yīng)數(shù)據(jù)發(fā)送給客戶端。
技術(shù)領(lǐng)域
本發(fā)明涉及Web應(yīng)用開發(fā)技術(shù)領(lǐng)域,特別是涉及一種基于Swoole提升Codeigniter框架性能的方法及裝置。
背景技術(shù)
目前,以PHP(Hypertext Preprocessor,超級(jí)文本預(yù)處理語言)做為開發(fā)語言的Web應(yīng)用,多數(shù)采用Apache(服務(wù)器軟件)或Nginx(HTTP和反向代理web服務(wù)器)通過SAPI(Server Application Programming Interface,服務(wù)器應(yīng)用程序編程接口)和PHP交換數(shù)據(jù)以對外提供HTTP服務(wù)。常見SAPI的部署方式有APACHE2HANDLER模式(Apache下preforkMPM),CGI/FastCGI模式(Apache下worker MPM、event MPM和Nginx)。無論哪種模式,最終的請求處理都是由PHP完成的。
雖然FastCGI模式下并發(fā)性能有所提升,但其處理能力仍取決CGI進(jìn)程的數(shù)量;進(jìn)程過多時(shí)的調(diào)度、PHP程序執(zhí)行時(shí)的網(wǎng)絡(luò)或磁盤IO阻塞導(dǎo)致CPU上下文頻繁切換,以及機(jī)器本身的性能限制使其很容易出現(xiàn)性能瓶頸。而在互聯(lián)網(wǎng)時(shí)代,高并發(fā)訪問請求下,性能問題會(huì)被放大,亦可能產(chǎn)生雪崩效應(yīng),導(dǎo)致系統(tǒng)響應(yīng)慢,甚至不可用,就會(huì)大大降低互聯(lián)網(wǎng)產(chǎn)品的用戶體驗(yàn)度。
另一方面,Codeigniter是一個(gè)小巧但功能強(qiáng)大的PHP框架,作為一個(gè)簡單而“優(yōu)雅”的工具包,它可以為開發(fā)者們建立功能完善的Web應(yīng)用程序;但其同樣也存在上述的性能問題外,來自用戶的每次請求都會(huì)重新從磁盤加載整個(gè)腳本產(chǎn)生額外的磁盤IO,進(jìn)一步影響性能。
發(fā)明內(nèi)容
為克服上述現(xiàn)有技術(shù)存在的不足,本發(fā)明之目的在于提供一種提升Codeigniter框架性能的方法及裝置,以解決現(xiàn)有技術(shù)中基于PHP Codeigniter框架開發(fā)的Web應(yīng)用程序中存在的性能問題。
為達(dá)上述目的,本發(fā)明提出一種提升Codeigniter框架性能的方法,包括如下步驟:
步驟S1,調(diào)整Codeigniter框架代碼,拆分Codeigniter框架入口及核心文件,并調(diào)整其中與Swoole不兼容的代碼,以供Swoole調(diào)用;
步驟S2,創(chuàng)建一個(gè)Server,產(chǎn)生包含Reactor線程的Master進(jìn)程、Worker進(jìn)程、Task進(jìn)程、Manager進(jìn)程,并開啟協(xié)程化支持;
步驟S3,在所述Server接收到業(yè)務(wù)請求后,由Master進(jìn)程基于事件驅(qū)動(dòng)轉(zhuǎn)發(fā)給Worker進(jìn)程;
步驟S4,Worker進(jìn)程調(diào)用Codeigniter框架處理所述Master進(jìn)程的Reactor線程投遞的業(yè)務(wù)請求,并將響應(yīng)數(shù)據(jù)發(fā)給Reactor線程;
步驟S5,所述Reactor線程將得到的響應(yīng)數(shù)據(jù)發(fā)送給客戶端。
優(yōu)選地,步驟S1包括:
步驟S100,將所述Codeigniter框架入口index.php中進(jìn)行框架資源相關(guān)和環(huán)境常量的初始化代碼提取為Codeigniter_config.php;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于上海英方軟件股份有限公司,未經(jīng)上海英方軟件股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011640486.7/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F3-00 用于將所要處理的數(shù)據(jù)轉(zhuǎn)變成為計(jì)算機(jī)能夠處理的形式的輸入裝置;用于將數(shù)據(jù)從處理機(jī)傳送到輸出設(shè)備的輸出裝置,例如,接口裝置
G06F3-01 .用于用戶和計(jì)算機(jī)之間交互的輸入裝置或輸入和輸出組合裝置
G06F3-05 .在規(guī)定的時(shí)間間隔上,利用模擬量取樣的數(shù)字輸入
G06F3-06 .來自記錄載體的數(shù)字輸入,或者到記錄載體上去的數(shù)字輸出
G06F3-09 .到打字機(jī)上去的數(shù)字輸出
G06F3-12 .到打印裝置上去的數(shù)字輸出





