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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                1 控制器默認是長生命周期的(關閉控制器復用除外),同樣的控制器的`$data`數組屬性也是長周期的,會發生內存泄漏 ``` ~~~ // 數組屬性 public $data = []; public function test2(Request $request) { $this->data[] = time(); //發生內存泄漏 , 長生命周期的數組數據不要無限擴張 // 控制器默認是長生命周期的(關閉控制器復用除外),同樣的控制器的$data數組屬性也是長周期的 return response(json_encode($this->data)); } public function test3(Request $request) { return response('hello webman'); } ~~~ ``` 請求第二次 ![](https://img.kancloud.cn/b4/06/b406ba7f9b43c79fd4592ce91480b6cd_480x292.png) 請求第3次 ![](https://img.kancloud.cn/57/ea/57ea26bfd5ecec135f38e1e7373515ff_465x338.png) ## [控制器生命周期](https://www.workerman.net/doc/webman/others/lifecycle.html#%E6%8E%A7%E5%88%B6%E5%99%A8%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F) * 每個控制器每個進程只會實例化一次,多個進程實例化多次(關閉控制器復用除外,參見[控制器生命周期](https://www.workerman.net/doc/webman/controller.html#%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F)) * 控制器實例會被當前進程內多個請求共享(關閉控制器復用除外) * 控制器生命周期在進程退出后結束(關閉控制器復用除外) ## [控制器不復用與復用區別](https://www.workerman.net/doc/webman/controller.html#%E6%8E%A7%E5%88%B6%E5%99%A8%E4%B8%8D%E5%A4%8D%E7%94%A8%E4%B8%8E%E5%A4%8D%E7%94%A8%E5%8C%BA%E5%88%AB) 區別如下 #### 不復用控制器 每個請求都會重新new一個新的控制器實例,請求結束后釋放該實例,并回收內存。不復用控制器和傳統框架一樣,符合大部分開發者習慣。由于控制器反復的創建銷毀,所以性能會比復用控制器略差(helloworld壓測性能差10%左右,帶業務可以基本忽略) #### 復用控制器 復用的話一個進程只new一次控制器,請求結束后不釋放這個控制器實例,當前進程的后續請求會復用這個實例。復用控制器性能更好,但是不符合大部分開發者習慣。 #### 以下情況不能使用控制器復用 當請求會改變控制器的屬性時,不能開啟控制器復用,因為這些屬性的更改會影響后續請求。 有些開發者喜歡在控制器構造函數`__construct()`里針對每個請求做一些初始化,這時候就不能復用控制器,因為當前進程構造函數只會調用一次,并不是每個請求都會調用。
                  <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>

                              哎呀哎呀视频在线观看