<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國際加速解決方案。 廣告
                # swoole項目起源和名字由來 項目起源 ---- Swoole 項目最初的想法是來自于之前所做的一個企業軟件項目。當時大概是2010年底,公司產品有一個需求是用戶可以任意生成一個 email 地址,然后其他用戶可以向這個email發郵件,后臺能實時將郵件內容解析成數據,并主動通知用戶。當時項目使用PHP開發的,在實現這個需求時遇到了難題,PHP只能依賴其他的STMP服務器,通過pop3協議定時查收新郵件來完成,這樣就不是實時的。如果要實現的實時系統必須自己寫一個TCP Socket Server實現SMTP協議接收數據。當時PHP在這個領域幾乎是空白,沒有一套成熟的網絡通信框架。為了實現需求,我從socket學起到TCP/IP、IO復用、libevent、多進程,最后終于實現了這套程序。做完這個項目后我就想把這套程序開源出來,希望能幫助其他PHPer解決在這個領域的難題。如果能有這樣一個框架,那么PHP就能從單純地做一個Web網站延伸到更大的空間。 性能問題 --- 還有一個重要的原因是PHP程序的性能問題,我最早是學Java出身的,工作后才轉行成為一名PHP程序員。在使用PHP開發程序的過程中,我一直在思考的問題 PHP 和 Java 比最大的優勢是什么?簡單高效, PHP 在請求完成之后會釋放所有資源和內存,無須擔心內存泄漏。代碼的質量無論高低一樣運行的很流暢。但同時這也是 PHP 致命的缺點。一旦請求數量上升,并發很高的時候,快速創建資源,又馬上釋放,使得 PHP 程序運行效率急劇下降。另外一旦項目的功能的越來越復雜,代碼增多后,對于 PHP 也會是災難。這也是 PHP 的框架為什么沒有被 PHP 程序員廣泛接受,而 Java 不存在這個問題。再好的框架也會被這種低效的方式拖累,導致系統變慢。所以想到了使用 PHP 來開發 PHP 的應用服務器,讓 PHP 的代碼加載到內存后,擁有更長的生命周期,這樣建立的數據庫連接和其他大的對象,不被釋放。每次請求只需要處理很少的代碼,而這些代碼只在第一次運行時,被 PHP 解析器編譯,駐留內存。另外,之前 PHP 不能實現的,對象持久化、數據庫連接池,緩存連接池都可以實現。系統的運行效率會大大提高。 經過一段時間研究,目前已經初步得到實現。使用 PHP 本身編寫出 HTTP 服務器,以獨立服務器方式運行,單個程序頁面 ( 有對象生成,數據庫連接、 smarty 模板操作 ) 的執行時間由原來的 0.0x 秒,下降到 0.00x 秒。使用 Apache AB 并發 100 測試。比傳統 LAMP 方式, Request per Second 高出至少 10 倍。在我的測試機上 (Ubuntu10.04 Inter Core E5300 + 2G 內存 ) , Apache 只跑到 83RPS 。 Swoole Server 可以跑到 1150 多 RPS。 這個項目就是Swoole的雛形。這個版本一直持續維護了2年多,在這個過程中逐步有了一些經驗積累,對這套技術方案的存在問題有了更深入的理解,比如性能差、限制較多無法直接調用操作系統接口、內存管理效率低下。 入職騰訊 ---- 2011年底我入職騰訊,負責朋友網的PHP平臺開發工作。驚奇地發現朋友網的同事不光這樣想了,他們直接做到了。朋友網團隊已經在生產環境中使用了這套方案。朋友網有三架馬車,第一個是PWS,這是一個純PHP編寫的WebServer,朋友網線上有600多臺服務器運行在PWS上,完全沒有使用Apache、PHP-FPM之類的程序。第二個是SAPS,這是使用純PHP開發的一個分布式隊列,當時大概由150臺服務器的集群在跑,很多圖片裁剪、頭像處理、消息同時、數據同步等邏輯全部使用了SAPS做邏輯異步化。第三個是PSF,這是一個PHP實現的Server框架,朋友網很多邏輯層的服務器都是基于PSF實現的。大概有300臺左右的集群在運行PSF服務器程序。在朋友網的這段時間,我學到了很多Linux底層、網絡通信的知識,積累了很多大型集群高并發環境的網絡通信跟蹤、調試經驗,為開發Swoole打下了一個很好的基礎。 開發Swoole ---- 在這期間也學習了解到了Node.js、Golang這些優秀的技術方案,得到了更多靈感。在2012年的時候就有了新的想法,決定使用C語言重新實現一個性能更強、功能更強大的版本。這就是現在的Swoole擴展。 現在Swoole已經被很多PHP技術團隊用于實際項目的開發工作,國內國外都有。國內知名的有百度訂單中心、百度地圖、騰訊QQ公眾號和企業QQ、戰旗直播、360、當當網、窮游等。另外還有很多物聯網、硬件、游戲項目也在使用Swoole 。另外基于Swoole的開源框架也越來越多,比如TSF、Blink、swPromise 等等,在Github上也能找到很多Swoole相關的項目和代碼。 名字由來 ---- Swoole這個名字不是一個英文單詞,是由我創造的一個音近字。我最早想到的名字是叫做`sword-server`,寓意是為廣大PHPer創造一把鋒利的劍,后來聯想到google也是憑空創造出來的,所以我就給它命名為`swoole`。
                  <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>

                              哎呀哎呀视频在线观看