<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## PHP性能優化 1. PHP語法使用的不恰當。 2. 使用PHP語言做了它不擅長做的事。 3. 用PHP語言連接的服務不給力。 4. PHP自身的短板。 5. 我也不知道的問題。 ## PHP性能占比 1. PHP性能問題,占用整個項目的整體性能30%-40%之間。 2. PHP語言級的性能優化。 3. PHP周邊問題的性能分析。比如,服務器環境,硬件配置,數據庫配置。 4. PHP語言自身分析,優化。底層C的分析。 5. 2、3、4是有簡單到復雜的過程。 ## 壓力測試工具簡介 ### Apache Benchmark(ab) #### 如何使用 ~~~ ./ab -n1000 -c100 http://www.baidu.com/ -n請求數 總共發起1000次請求 -c并發數 一次的并發量是100 url 目標壓測地址 ~~~ 性能優化之前使用ab 性能優化之后使用ab 對比吞吐量和處理耗時 ab測試主要關注系統<span style="color:red">吞吐量</span> 和 <span style="color:red">服務器處理時間</span>這兩個點。 ## PHP語言級性能優化 1. 少些代碼,多用PHP自身能力。 2. 自寫代碼冗余比較多,可讀性不佳,并且性能差。 3. php代碼需要編譯解析為底層語言,這一過程每次請求都會處理一遍,開銷大。 4. 多使用PHP內置變量、常量、函數。 ## PHP代碼運行流程 ![](https://box.kancloud.cn/cef99c401b9ab96d0843755173e991bf_2012x920.jpeg) 1. PHP內置函數的性能優劣。 2. 盡量少用魔法函數(為了給PHP程序員省事,PHP語言為你做了很多) 產生額外開銷的錯誤抑制符@ 情況描述:PHP提供的錯誤抑制符@只是為了方便懶人。會增加額外開銷。 vld PHP Opcode 查看擴展 #### 1)合理使用內存 PHP有內存回收機制保底,但也請小心使用內存。 可以利用unset()及時釋放不使用的內存。 #### 2)盡量少的使用正則表達式 利用字符串處理函數,實現相同邏輯。 #### 3)避免在循環內做運算 循環內的計算式將會被重復計算。 ~~~ $str = "hello world"; for($i=0;$i<strlen($str);$i++){ //do something strlen 會計算多次。 } ~~~ #### 4)PHP不適合密集型運算場景 PHP的語言特性決定了PHP不適合做大數據量運算。 #### 5)PHP適合銜接Webserver與后臺服務,UI呈現。 #### 6)務必使用帶引號字符串做鍵值。 php會將沒有引號的鍵值當做常量,產生查找常量的開銷。 ## PHP周邊環境 1)linux服務器 2)硬盤是硬件 3)mysql是軟件 4)apache 5)內存 ![](https://box.kancloud.cn/31f5a2aae1feba28359e8b2a45dd8e9c_2478x1178.jpeg) #### 減少文件類的操作 PHP場景開銷次序 1. 讀寫磁盤 2. 讀寫數據庫 3. 讀寫內存 4. 讀寫網絡數據 讀寫內存 << 讀寫數據庫 < 讀寫磁盤 < 讀寫網絡數據(其實是磁盤操作+網絡延遲) #### 優化網絡請求 1. 對方接口不確定因素。 2. 網絡穩定性。 3. 設置超時時間,1、連接超時200ms,2、讀超時800ms,3、寫超時500ms 4. 將串行請求并行化。使用 curl_multi_*();,使用swoole擴展。 #### 壓縮PHP接口輸出 使用Gzip即可。壓縮后更快傳輸數據,但是會產生額外的CPU開銷。 #### 緩存重復計算內容 多次請求內容不變情況。 #### 重疊時間窗口理想 PHP是串行執行的。 前后任務沒有強依賴關系,可以使用重疊時間窗口 ![](https://box.kancloud.cn/837cfe64cc4812bc069882de6f8ce8dd_2166x1136.jpeg) #### 旁路方案 ![](https://box.kancloud.cn/f10ca872542e402f3812d29ec3122f64_2238x1204.jpeg) xhprof 工具分析PHP性能。 https://www.jianshu.com/p/c420ebe6ce39 ### php性能瓶頸終極提升 Opcode Cache:PHP擴展APC,APC緩存PHP編譯后的代碼。 Runtime優化:HHVM
                  <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>

                              哎呀哎呀视频在线观看