<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # PhalApi 2.x VS PhalApi 1.x 不同的使用方式和組織方式,不僅決定了框架內部特質上的差異,還影響了外部使用上的區別。本文章主要介紹**PhalApi v2.0.0 版本**與**PhalApi v1.4.1 版本**之間的內部差異。并約定,下文中,**新版本**是指PhalApi v2.0.0 版本,**舊版本**是指PhalApi v1.4.1 版本。 新、舊版本主要的對比結論,匯總如下: + 新、舊版基準測試結果基本一致 + 新、舊版本執行時間相差約為1毫秒 + 新版的單元測試,覆蓋率達90%以上,通過率為100% + 新版的技術債務僅1天,質量更優! ## 基準測試對比 ### 對比結論:新、舊版基準測試結果基本一致 壓測環境配置為: + 阿里云服務器ECS(CPU:1核 內存:1 GB 寬帶:1Mbps) + 操作系統:CentOS release 6.7 (Final) + nginx/1.8.0 + PHP 5.3.5 待壓測的接口服務鏈接: + PhalApi v2.0.0 默認接口服務:http://demo2.phalapi.net/ + PhalApi v1.4.1 默認接口服務:http://demo.phalapi.net/ 這里,使用Autobench進行基準測試,壓測腳本為: ``` autobench \ --single_host \ --host1=$DM \ --port1=80 \ --uri1=$URL \ --low_rate=1 \ --high_rate=50 \ --rate_step=1 \ --num_call=1 \ --num_conn=50 \ --timeout=5 \ --file ./$DM.tsv ``` 對于新、舊版本,其壓測結果對比如下(左圖為新版,右圖為舊版): ![](http://7xiz2f.com1.z0.glb.clouddn.com/20170709150238_613518e69d081355beb9ff56034a3aa0) 在并發量為50以內時,新、舊版本的響應時間基本一致,約為20 ms。對于新版,詳細的壓測報告數據如下: ``` dem_req_rate req_rate_demo2.phalapi.net con_rate_demo2.phalapi.net min_rep_rate_demo2.phalapi.net avg_rep_rate_demo2.phalapi.net max_rep_rate_demo2.phalapi.net stddev_rep_rate_demo2.phalapi.net resp_time_demo2.phalapi.net net_io_demo2.phalapi.net errors_demo2.phalapi.net 1 1.0 1.0 1.0 1.0 1.0 0.0 20.2 0.4 0 2 2.0 2.0 2.0 2.0 2.0 0.0 18.7 0.9 0 3 3.1 3.1 3.0 3.0 3.0 0.0 18.9 1.3 0 4 4.1 4.1 4.0 4.0 4.0 0.0 19.2 1.7 0 5 5.1 5.1 5.0 5.0 5.0 0.0 18.7 2.1 0 6 6.1 6.1 6.0 6.0 6.0 0.0 18.4 2.6 0 7 7.1 7.1 7.0 7.0 7.0 0.0 18.4 3.0 0 8 8.1 8.1 8.0 8.0 8.0 0.0 18.7 3.4 0 9 9.1 9.1 9.0 9.0 9.0 0.0 18.9 3.8 0 10 10.1 10.1 0.0 0.0 0.0 0.0 18.5 4.3 0 11 11.1 11.1 0.0 0.0 0.0 0.0 19.0 4.7 0 12 12.2 12.2 0.0 0.0 0.0 0.0 18.9 5.1 0 13 13.2 13.2 0.0 0.0 0.0 0.0 18.9 5.5 0 14 14.2 14.2 0.0 0.0 0.0 0.0 18.5 6.0 0 15 15.2 15.2 0.0 0.0 0.0 0.0 18.4 6.4 0 16 16.2 16.2 0.0 0.0 0.0 0.0 19.0 6.8 0 17 17.2 17.2 0.0 0.0 0.0 0.0 18.8 7.2 0 18 18.2 18.2 0.0 0.0 0.0 0.0 18.5 7.6 0 19 19.2 19.2 0.0 0.0 0.0 0.0 18.4 8.1 0 20 20.2 20.2 0.0 0.0 0.0 0.0 35.9 8.5 0 21 21.2 21.2 0.0 0.0 0.0 0.0 18.3 8.9 0 22 22.2 22.2 0.0 0.0 0.0 0.0 19.0 9.3 0 23 23.2 23.2 0.0 0.0 0.0 0.0 18.8 9.7 0 24 24.1 24.1 0.0 0.0 0.0 0.0 18.4 10.2 0 25 25.1 25.1 0.0 0.0 0.0 0.0 18.3 10.6 0 26 26.1 26.1 0.0 0.0 0.0 0.0 18.4 11.0 0 27 27.1 27.1 0.0 0.0 0.0 0.0 18.5 11.4 0 28 28.1 28.1 0.0 0.0 0.0 0.0 18.5 11.8 0 29 29.1 29.1 0.0 0.0 0.0 0.0 18.4 12.3 0 30 30.1 30.1 0.0 0.0 0.0 0.0 18.5 12.7 0 31 31.1 31.1 0.0 0.0 0.0 0.0 18.7 13.1 0 32 32.0 32.0 0.0 0.0 0.0 0.0 18.3 13.5 0 33 33.0 33.0 0.0 0.0 0.0 0.0 18.3 13.9 0 34 34.0 34.0 0.0 0.0 0.0 0.0 18.1 14.3 0 35 10.5 10.5 0.0 0.0 0.0 0.0 48.5 4.4 0 36 8.1 8.3 9.8 9.8 9.8 0.0 18.3 3.4 2.04081632653061 37 37.0 37.0 0.0 0.0 0.0 0.0 18.2 15.6 0 38 37.9 37.9 0.0 0.0 0.0 0.0 18.4 15.9 0 39 38.9 38.9 0.0 0.0 0.0 0.0 18.6 16.4 0 40 39.9 39.9 0.0 0.0 0.0 0.0 18.6 16.8 0 41 40.9 40.9 0.0 0.0 0.0 0.0 18.6 17.2 0 42 41.8 41.8 0.0 0.0 0.0 0.0 18.4 17.6 0 43 8.0 8.2 9.8 9.8 9.8 0.0 18.6 3.4 2.04081632653061 44 12.4 12.4 0.0 0.0 0.0 0.0 18.4 5.2 0 45 25.2 25.2 0.0 0.0 0.0 0.0 18.2 10.6 0 46 12.5 12.5 0.0 0.0 0.0 0.0 18.5 5.3 0 47 25.2 25.2 0.0 0.0 0.0 0.0 18.3 10.6 0 48 12.5 12.5 0.0 0.0 0.0 0.0 18.4 5.2 0 49 25.2 25.2 0.0 0.0 0.0 0.0 18.6 10.6 0 50 9.3 9.3 9.8 9.8 9.8 0.0 35.7 3.9 0 ``` ## XHprof性能剖析對比 ### 對比結論:新、舊版本執行時間相差約為1毫秒 使用XHprof對新、舊版本進行性能剖析,經過多次分析并取各自最優值,對關鍵性能指標的對比如下: 性能指標|PhalApi v2.0.0 新版本|PhalApi v1.4.1 舊版本|趨勢 ---|---|---|--- Total Incl. Wall Time (microsec)| 9,249 microsecs| 8,393 microsecs| + 10.20% Total Incl. CPU (microsecs)| 8,999 microsecs| 6,999 microsecs| + 28.58% Total Incl. MemUse (bytes)| 1,852,424 bytes| 1,608,600 bytes| + 15.16% Total Incl. PeakMemUse (bytes)| 1,866,608 bytes| 1,619,544 bytes| - 10.27% Number of Function Calls| 629| 701| + 13.69% 就上面報告的數據可以看出,新版本的各項性能指標比舊版本有所增加。這是因為引入了composer機制所產生的影響。雖然有所漲幅,但由于基數低,新版本的性能還是非常優異的。例如對于Wall Time,新版本為9,249毫秒,舊版本的Wall Time為8,393 microsecs,僅**相差了0.856毫秒**,即不到1毫秒。執行時間會隨系統環境配置不同,執行時的系統狀態不同,會相對變化,而函數調用的次數則是固定的。如果僅從函數調用次數來對比,新版本則比舊版本少了72次調用。 ### 新版本的XHprof報告 新版本的XHprof性能報告概覽如下: ![](http://7xiz2f.com1.z0.glb.clouddn.com/20170716132036_d131915bf18df8954d918d8f4ff71ad5) 新版本的Top 10耗時操作是: Function Name|Calls|Calls%|Excl. Wall Time (microsec)|EWall% ---|---|---|---|--- load::NotORM/Result.php|1|0.20%|1408|15.20% run_init::src/bootstrap.php|1|0.20%|2813|30.40% load::composer/ClassLoader.php|1|0.20%|449|4.90% load::Database/NotORMDatabase.php|1|0.20%|314|3.40% load::NotORM/MultiResult.php|1|0.20%|286|3.10% load::NotORM/Structure.php|1|0.20%|255|2.80% load::NotORM/Row.php|1|0.20%|252|2.70% load::src/Request.php|1|0.20%|243|2.60% load::NotORM/Cache.php|1|0.20%|213|2.30% PhalApi\Request::getAllHeaders|1|0.20%|229|2.50% 對應的高清版可視化圖表如下: ![](http://7xiz2f.com1.z0.glb.clouddn.com/20170716132700_9442f75871e38a59c5bcedcccdda6903) 可以看到,最耗時的操作是對NotORM文件的引入(上圖經色部分),這與舊版本最耗時的操作是一樣的。 更多請點擊查看: + [新版本的XHprof報告 - 20170716](https://www.phalapi.net/xhprof/xhprof_html/?run=596af62c31dac&source=xhprof_foo&sort=excl_wt) + [舊版本的XHprof報告 - 20170709](https://www.phalapi.net/xhprof/xhprof_html/index.php?run=5961c4ca5b9a6&source=xhprof_foo) ## 單元測試覆蓋率對比 ### 對比結論:新版依然保持著90%以上的單元測試覆蓋率 PhalApi一直推薦使用測試驅動的開發方式,通過意圖導向編程,提高開發效率、提升代碼質量。 對于PhalApi自身框架的開發,我們同樣也是遵循TDD的最佳實踐,爭取為開源社區產出優質的框架。對于新版本,其核心框架代碼部分的單元測試覆蓋率達94%以上,如下圖所示: ![](http://7xiz2f.com1.z0.glb.clouddn.com/20170709140256_205e5ac4b9730daec4188f51aaccc8c1) 此外,核心框架的單元測試通過率是100%。執行單元測試套件的輸出效果,類似如下: ```bash /path/to/phalapi/kernal/tests$ phpunit -c ./phpunit_silence.xml PHPUnit 4.3.4 by Sebastian Bergmann. Configuration read from /path/to/phalapi/kernal/tests/phpunit_silence.xml ............................................................... 63 / 327 ( 19%) ............................................................... 126 / 327 ( 38%) ............................................................... 189 / 327 ( 57%) ............................................................... 252 / 327 ( 77%) ............................................................... 315 / 327 ( 96%) ............ Time: 14.05 seconds, Memory: 26.25Mb OK (327 tests, 480 assertions) ``` ## 靜態代碼質量分析對比 ### 對比結論:新版的技術債務僅1天,質量更優! 借助于開源中國碼云上的代碼分析服務,可以得到以下Sonar分析報告,從中可以看到新版框架的核心部分技術債務**僅有1天**。 ![](http://7xiz2f.com1.z0.glb.clouddn.com/20170709151921_9ce43b2fa34077ede6816530d06b451a) 快速對比新、舊版的靜態代碼質量,可以得出:新版本在遵循composer和psr-4規范下,代碼質量更優。例如,技術債務從原來1天5小時降為1天,問題總數從158個降為97個。 質量指標|PhalApi v2.0.0 新版本|PhalApi v1.4.1 舊版本|趨勢 代碼行數|2663|2267| + 17.46% 技術債務|1天|1天 5小時| - 17.24% 問題總數|97|158| - 38.61% 復雜度(方法)|2.7|2.7| 0% 更多請點擊查看: + [PhalApi v2.0.0 新版本Sonar分析報告](http://git.oschina.net/dogstar/kernal/quality_analyses?platform=sonar) + [PhalApi v1.4.1 舊版本Sonar分析報告](http://git.oschina.net/dogstar/PhalApi/quality_analyses?platform=sonar)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看