關於php編譯緩衝機制

來源:互聯網
上載者:User
關鍵字 php

我用stat查看某個php檔案看到只有第一次訪問被記錄,說明這個php解譯器在這個檔案未被修改的情況下只會編譯一次對不對?

求大神解釋一下php的編譯緩衝機制

回複內容:

我用stat查看某個php檔案看到只有第一次訪問被記錄,說明這個php解譯器在這個檔案未被修改的情況下只會編譯一次對不對?

求大神解釋一下php的編譯緩衝機制

你說的這個不是PHP的緩衝機制,而是Linux作業系統的檔案系統快取機制,就是free -m看到的buffers/cache佔用的記憶體.PHP解譯器(PHP-FPM)第一次訪問PHP指令檔後,這個檔案就已經載入到記憶體,而作業系統會把頻繁訪問的檔案維持在記憶體buffers/cache中,這樣PHP再次讀這個檔案的時候就不需要讀磁碟了.

對於PHP解譯器來說,仍是需要每次解析指令碼內容並執行產生的opcode.

不過PHP的ZendOpcache擴充提供了樓主你想要的緩衝機制:
ZendOpcache會把第一次請求的指令碼對應的opcode儲存在記憶體,供下一次請求直接執行.
PHP7的ZendOpcache甚至還支援匯出指令碼的opcode,一定程度上還可以實現原始碼保護.

提個不相關的事兒:

ext3/4 檔案系統中 atime 的更新可以通過 mount 的參數關掉, 某些情況下可以調高效能.

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.